我不明白以下几点:
- 三星 Galaxy S3 显示 720 像素 x 1280 像素,屏幕尺寸为 4.8 英寸
- 所以屏幕密度可以评估到305dpi
- 在Android screen-support recommandation page中,305dpi 对应“xhdpi”限定符
所以我的问题是:为什么在 GS3 上运行的应用程序会从“mdpi”限定符中获取资源?
作为更新,请参阅我的代码来测试它:
主.xml:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/density" />
</RelativeLayout>
文件夹中的strings.xml {" values "," values-ldpi "," values-mdpi "," values-hdpi "," values-xhdpi "}
其中 " [x] " 分别是 {" default "," ldpi "," mdpi "," hdpi "," xhdpi "} :
<resources>
<string name="density">[x]</string>
</resources>
结果是应用程序显示“ mdpi ”文本资源
作为一个新的更新,我测试了:
- 将“ values-xhdpi ”文件夹重命名为“ values-normal-xhdpi ”
结果:“ xhdpi ”
- 将“ values-xhdpi ”文件夹重命名为“ values-normal-xhdpi ”
- 将“ values-hdpi ”文件夹重命名为“ values-normal-hdpi ”
结果:“ hdpi ”
- 将“ values-xhdpi ”文件夹重命名为“ values-normal-xhdpi ”
- 将“ values-hdpi ”文件夹重命名为“ values-normal-hdpi ”
- 将“ values-mdpi ”文件夹重命名为“ values-normal-mdpi ”
结果:“ mdpi ”
- 将“ values-xhdpi ”文件夹重命名为“ values-normal-xhdpi ”
- 将“ values-hdpi ”文件夹重命名为“ values-normal-hdpi ”
- 将“ values-mdpi ”文件夹重命名为“ values-normal-mdpi ”
- 将“ values-ldpi ”文件夹重命名为“ values-normal-ldpi ”
结果:“ mdpi ”
我不明白结果,为什么系统选择资源的选择性较低(“mdpi”最小值)而不是选择性更高?