我有两个图像按钮,尺寸为256x256 dp和scaleType="centerCrop"
。
当我在AS中看到预览或在我的nexus 5上启动应用程序时,图像模糊。图像具有相应文件夹的正确尺寸,最大为xxxhdpi(192x192)。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@android:color/black">
<ImageButton
android:layout_marginTop="48dp"
android:layout_width="256dp"
android:layout_height="256dp"
android:id="@+id/button"
android:layout_gravity="center_horizontal"
android:src="@mipmap/button_off"
android:background="@android:color/black"
android:scaleType="centerInside"
/>
<ImageButton
android:layout_width="256dp"
android:layout_height="256dp"
android:id="@+id/second_button"
android:layout_gravity="center_horizontal"
android:src="@mipmap/second_off"
android:background="@android:color/black"
android:scaleType="centerInside"
/>
</LinearLayout>
答案 0 :(得分:0)
请先查看此文档
https://developer.android.com/guide/topics/resources/providing-resources.html
然后检查您的项目结构。你不太可能得到这个部分错误,并且首先匹配低分辨率资源。
答案 1 :(得分:0)
如果我理解正确 - 您在XML布局文件中设置了ImageButton
width=256dp
和height=256dp
,以及src = drawable / your_drawable。 xxxhdpi
drawable的宽度和高度192px
(我假设比mdpi - 48,hdpi - 72,xhdpi - 96,xxhdpi - 144,xxxhdpi - 192)。
如果是这样,当然图像模糊了,因为你设置ImageButtons
宽度/高度in mdpi
(xml为256dp),但你使用了144x144
(nexus 5是xxhdpi)Drawable拉伸(因为scaleType = centerCrop
)。
如果你不想要拉伸图像,这里有一些选项(可能不是全部):