android - 7"and 10"平板电脑的值文件夹中的 dimens.xml,如何?

标签 android xml resources dimensions

我试过:

values-mpdi, values-land-mpdi, values-hpdi and values-land-hdpi

这在手机屏幕上工作正常,问题是 7"平板电脑和 10"平板电脑也可能从 values-mdpi 获取值,但结果不一样,我猜是因为屏幕大小(虽然是相同的分辨率和相似的密度) 所以我尝试了:

values-sw600dp-hdpi
values-sw600dp-port-hdpi
values-sw600dp-mdpi
values-sw600dp-port-mdpi
values-sw720dp-hdpi
values-sw720dp-port-hdpi
values-sw720dp-mdpi
values-sw720dp-port-mdpi

但是应用程序崩溃了,因为它没有找到所需的资源....

任何帮助将不胜感激

提前致谢

最佳答案

基本上,Android 应用程序需要支持三种主要设备类别:

  1. 手机(电话)
  2. 小型平板电脑(7″ 类)
  3. 大平板电脑(10 英寸及以上)。

Android 3.2 之前的限定符:

Google 第一次尝试创建限定符以按设备分隔资源是创建一些大小的桶:小、正常、大、超大。最初,这很有效,因为手机设备属于小型/普通类别,市场上第一个 7″ 平板电脑 是大的,而第一个 10″平板电脑超大。

Android 3.2 及以上版本的限定符:

然而,随着越来越多的设备开始出现在市场上,并配备新的屏幕尺寸,关于设备可能出现在何处的界线开始变得模糊。 在 Android 3.2 中提出了一个新的解决方案,以新限定符的形式根据设备的当前宽度/高度或“最小”来选择资源宽度;后者是设备尺寸的新名称,用屏幕最短边的宽度(密度无关像素或 dp)表示。

使用新范例,通常将小型平板电脑定义为最小宽度为 600dp,将大型平板电脑定义为最小宽度 720dp,手机是低于该线的所有设备。

当最低支持度低于 3.2 且目标高于或等于 3.2 时使用限定符 对于至少以 Android 3.2 或更高版本为目标的应用程序,这个新系统运行良好。但是,如果希望创建在手机和平​​板电脑上通用的应用程序的开发人员被迫支持不高于 2.2 或最多 2.3 的最低 Android 版本,那么在这种情况下,在具有旧大小的目录中创建每个资源的副本限定符并将其放置在具有相应最小宽度限定符的另一个目录中。

例如在 values-largevalues-sw600dp 中保留相同的 dimens.xml 文件。所以Android 3.2以下的设备会从values-large取值,Android 3.2以上的设备会从values-sw600dp取值>

关于android - 7"and 10"平板电脑的值文件夹中的 dimens.xml,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10642179/

相关文章:

android - 未找到默认 Activity - Android Studio 3.3 中的错误

具有类引用的 Android 数据绑定(bind)绑定(bind)适配器

html - 如何让xsl :fo allow table cell to take empty blocks and print mutiple lines

xml - 如何在 Swift 中解析 XML Web 服务?

php - 警告 : mysql_query(): 7 is not a valid MySQL-Link resource

android - Android 手机上最流行的屏幕尺寸/分辨率

android - 2048x1536 是 Android 设备上常见的相机分辨率吗?

android - 构建github项目后无法获取neo4j-android-client.jar和neo4j-android-common.jar

c# - 在 Unity 中使用资源文件夹

java - h :graphicImage JSF 的图像路径