通常,缩小是最好的选择(与放大相反)。如果您的图像在缩小时没有降级或丢失信息,请将图像的 2x 版本放在res/drawable -xhdpi文件夹中。Android 将在低密度设备上适当缩小这些图像。
例如,如果您将 64x64 像素的 jpg/png 放入res/drawable-xhdpi,Android 将在 mdpi 设备上显示为 32x32 像素,在 hdpi 设备上显示为 48x48 像素图像,在 xhdpi 设备上显示为 64x64 像素图像。
如果缩小图像会使它们恶化(例如,图像中有 1 像素线会在缩小时消失),那么唯一的选择是在 drawable-mdpi、drawable-hdpi 等中添加图像的变体。目录。
评论后更新:
你想让你的图像在更大的屏幕上显示得更大(而不是在更高密度的屏幕上)。您可以通过仍然将图像仅放在 drawable-xhdpi 文件夹中来做到这一点,然后执行以下操作:
例如,您将在 res/layout 中使用显示您的图像之一的 ImageView 的此布局:
res/drawable-xhdpi/one_of_my_images.png
资源/布局/somelayout.xml
....
<ImageView
android:layout_height="@dimen/image_height"
android:layout_width="@dimen/image_width"
android:src="@drawable/one_of_my_images"
android:scaleType="fitCenter"
....
/>
res/values/dimens.xml
....
<dimen name="image_height">100dip</dimen>
<dimen name="image_width">150dip</dimen>
....
res/values-large/dimens.xml
....
<dimen name="image_height">150dip</dimen>
<dimen name="image_width">225dip</dimen>
....
res/values-xlarge/dimens.xml
....
<dimen name="image_height">200dip</dimen>
<dimen name="image_width">300dip</dimen>
....
如您所见,屏幕越大,图像越大(以倾角为单位,因此以英寸为单位)。您可以在 res/values-xlarge-hdpi、res/values-xlarge-xhdpi 等中的 dimens.xml 中尝试不同的 image_height 和 image_width 值,看看哪个看起来最好。
评论后更新 2:
如果您想要自己的“自定义”方案来加载适当的资源,请将它们放入 id res/drawable-nodpi:例如
res/drawable-nodpi/one_of_my_images_normal.png res/drawable-nodpi/one_of_my_images_large.png res/ drawable-nodpi/one_of_my_images_xlarge.png
然后放入适当的可绘制目录(res/drawable/、res/drawable-large、/res/drawable-sw360dp/ 等,无论你能想到什么)一个 xml 文件,该文件间接引用来自 nodpi 目录的正确资源:例如
res/drawable-xlarge-mdpi/my_images.xml
<resources>
....
<item type="drawable" name="one_of_my_images">@drawable/one_of_my_images_large</item>
....
</resources>
这意味着对于超大 mdpi 屏幕,Android 将从 drawable-nodpi 目录加载“one_of_my_image_large.png”。