GS3上的屏幕密度
Posted
技术标签:
【中文标题】GS3上的屏幕密度【英文标题】:Screen density on GS3 【发布时间】:2012-10-02 02:28:50 【问题描述】:我不明白以下几点:
三星 Galaxy S3 显示 720 像素 x 1280 像素,屏幕尺寸为 4.8 英寸 所以屏幕密度可以评估为305dpi 在android screen-support recommandation page中,305dpi对应“xhdpi”限定符所以我的问题是:为什么在 GS3 上运行的应用会从“mdpi”限定符中获取资源?
作为更新,请查看我的代码进行测试:
main.xml:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_ >
<TextView
android:layout_
android:layout_
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”最小值)而不是选择性较高的资源?
【问题讨论】:
我认为你的测试做错了 你有xhdpi文件夹吗?是否正确命名?你有默认的资源文件夹吗? 我使用 TextView 和文件夹“values-ldpi”、“values-mdpi”、“values-hdpi”、“values-xhdpi”测试我的应用程序,其中分别包含“ldpi”、“mdpi”、 “hdpi”、“xhdpi”资源文本(“values”文件夹中没有任何内容)和应用程序显示“mdpi”密度 此外,我添加了一个 ImageView 链接到具有不同密度子文件夹中的资源的图像参考(适应不同的屏幕密度),但图像质量差(ImageView 大小等于图像“mdpi”中的大小) 我测试将“默认”密度文本值放在“值”文件夹中,但应用程序显示“mdpi”。所以使用“values-mdpi”中包含的资源... 【参考方案1】:我发现了我的错误:
我在 API 级别 3 下编译,并在我的清单中删除了属性 android:targetSdkVersion,因为它无法识别(错误:在包 'android' 中找不到属性 'targetSdkVersion' 的资源标识符)。在 Range of screens supported 部分,我们可以看到 Android 1.6(API 级别 4)支持它。
感谢您的帮助
【讨论】:
以上是关于GS3上的屏幕密度的主要内容,如果未能解决你的问题,请参考以下文章
Android 屏幕适配屏幕适配基础概念 ③ ( 屏幕像素密度 DPI 与素材大小关联 | 屏幕像素密度 DPI 与 屏幕密度限定符关联 )
Android 屏幕适配屏幕适配基础概念 ③ ( 屏幕像素密度 DPI 与素材大小关联 | 屏幕像素密度 DPI 与 屏幕密度限定符关联 )