我不明白以下几点:
- 三星Galaxy S3在4.8英寸屏幕上显示720px x 1280px
- 因此,屏幕密度可以评估为305dpi
- 在安卓屏幕支持推荐页面中,305dpi对应"xhdpi"限定符
所以我的问题是:为什么在GS3上运行的应用程序会从"mdpi"限定符中获取资源
作为更新,请参阅我的代码进行测试:
main.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>
string.xml文件夹中的{">值"、">values ldpi"、">values mdpialueshdpi"、">values-xhdpi"}
其中">[x]"分别为{">默认、">ldpi"、">mdpidpi"、">xhdpi"}:
<resources>
<string name="density">[x]</string>
</resources>
结果是应用程序显示">mdpi"文本资源
作为一个新的更新,我测试到:
- 将">values xhdi"文件夹重命名为">values normal xhdi">
结果:">xhdi">
- 将">values xhdi"文件夹重命名为">values normal xhdi">
- 将">values hdpi"文件夹重命名为">values normal hdpi">
结果:">hdpi">
- 将">values xhdi"文件夹重命名为">values normal xhdi">
- 将">values hdpi"文件夹重命名为">values normal hdpi">
- 将">values mdpi"文件夹重命名为">values normal mdpi">
结果:">mdpi">
- 将">values xhdi"文件夹重命名为">values normal xhdi">
- 将">values hdpi"文件夹重命名为">values normal hdpi">
- 将">values mdpi"文件夹重命名为">values normal mdpi">
- 将">values ldpi"文件夹重命名为">values normal ldpi
结果:">mdpi">
我不明白结果,为什么系统选择的资源选择性较小(最小值为"mdpi")而不是更高?
我发现了我的错误:
我在API级别3下编译,在我的清单中,我删除了属性android:targetSdkVersion,因为它无法识别(错误:在包"android"中找不到属性"targetSdkVersion"的资源标识符)。在支持的屏幕范围部分,我们可以看到Android 1.6(API级别4)支持的屏幕。
感谢的帮助