我的应用程序有一个质量太差的 ImageButton。实际图像尺寸为 4176*4176(4176 像素),单独打开时看起来完全没问题。但是,当我将其导入 android studio 并将其分配给 ImageButton 时,图像质量会下降。我一直在尝试多种方法来解决这个问题,但还没有成功。我对 Android 编程完全陌生。我转到 res/drawable,然后右键单击以创建一个新的图像资产,然后指定导入 png 文件的位置。实际图像:工作室内部图像:这是activity_main.xml中的代码:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:gravity="center"android:orientation="vertical"><ImageButton android:id="@+id/police" android:layout_width="317dp" android:layout_height="295dp" android:layout_centerInParent="true" android:adjustViewBounds="true" android:scaleType="fitXY" android:background="@drawable/custom_button" /></LinearLayout>调用图像的自定义按钮代码:<item android:state_pressed="true" android:drawable="@mipmap/pressed" /><item android:drawable="@mipmap/defaultt" /></selector>
2 回答
牛魔王的故事
TA贡献1830条经验 获得超3个赞
我首先回顾一下 Android 上的密度无关像素。这是一个很好的博客,涵盖了这个概念:https : //www.captechconsulting.com/blogs/understanding-density-independence-in-android
主要问题是您的图像(分辨率非常高)被压缩以适合图像按钮。通常,您希望通过不同的可绘制资源目录(例如,drawable-hdpi、drawable-xhdpi、drawable-xxhdpi)包含不同密度的图像资产。
但是,现在,您可以使用矢量可绘制对象,这将减少每个密度桶拥有多个资产的需要,假设您能够生成 SVG 资产文件:https : //developer.android.com/guide/topics/图形/矢量可绘制资源
炎炎设计
TA贡献1808条经验 获得超4个赞
您实际上是在/mipmap
目录中引用像启动器图标这样的图像。
我建议减小您仅使用它的图像大小ImageButton
并将其放置在/drawable
您想要的质量或可能小于当前质量的内部,而不是将其放置在/mipmap
目录中。
此外,我实际上没有看到如何scaleType
帮助ImageButton
. 您可能也想删除该行。
添加回答
举报
0/150
提交
取消