我有一个应用程序在 TextView 中将位图显示为“drawableTop”:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_weight="1"
android:drawableTop="@drawable/bitmap"
android:gravity="center"
android:text="@string/text" />
位图来自 res/drawable 文件夹中的一个 PNG 文件,我们称之为 bitmap.png。
我需要支持多种屏幕尺寸和密度,并且想找到最便宜的方法(就我需要在 res/* 文件夹中有多少 PNG 文件而言)来做到这一点。
各种密度:仅限手机
我得出的结论是,将 bitmap.png 放在 res/drawable-xhdpi 文件夹中就足够了。在高密度的手机上显示时,会按原样显示,而在低密度的手机上会自动缩小。换句话说,不需要在 res/drawable-hdpi、res/drawable-mdpi 等中使用较低分辨率的 bitmap.png 版本。基本上,对于所有手机来说,只需一个版本的 PNG 文件就足够了。
各种密度:平板电脑
现在,如果我还想支持平板电脑,就会出现问题:大屏幕和超大屏幕。在平板电脑上,我希望图标的纵横比与手机上的相同:如果位图占据手机屏幕的 1/4,我希望它占据平板电脑屏幕的 1/4。我不能像以前一样重复使用相同的 PNG 文件,否则它看起来太小了,因为平板电脑只有更多的像素......所以对于平板电脑,我需要更高分辨率的 PNG。这适用于大屏幕和超大屏幕。
这导致需要 3 个文件夹和 3 个版本的 PNG:
1: res/drawable-xhdpi/bitmap.png
2: res/drawable-large-xhdpi/bitmap.png
3: res/drawable-xlarge-xhdpi/bitmap.png
但是 1 和 2 基本上是 3 的低分辨率版本。
那么有没有一种简单的方法来拥有一个文件夹而不是 3?