【问题标题】:dimens.xml in values folder for 7" and 10" tablet, how to?7“和10”平板电脑的值文件夹中的dimens.xml,如何?
【发布时间】:2012-05-17 19:20:53
【问题描述】:

我试过了:

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

在手机屏幕上运行良好,问题是 7" 平板电脑可能会从 values-mdpi 和 10" 平板电脑中获取值,但结果不一样,我猜是因为屏幕尺寸(虽然是相同的分辨率和相似的密度) 所以我尝试了:

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 xml resources dimensions


【解决方案1】:

Android 应用程序需要支持的主要设备类别基本上存在三个:

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

Android 3.2 之前的限定符:

Google 在创建限定符以按设备分隔资源的第一次尝试是创建了一些大小桶:small、normal、large、xlarge。最初,这很成功,因为 手机 设备属于小型/普通类别,市场上第一批 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 文件。因此,在低于 3.2 的 android 版本上运行的设备将采用 values-large 的值,而在高于或等于 3.2 的 android 版本上运行的设备将采用 values-sw600dp 的值

【讨论】:

    【解决方案2】:

    //您需要在 API 级别 3.2 及更高级别运行。

    对于

    【讨论】:

    • 你的意思是,如果我将targetSDKVersion 设置为 19,那么我需要使用 values-sw600dpvalues-sw720dp,当我针对 API 级别 13 以下的 API 时,我需要使用 values-large 和值-xlarge。对吗?
    猜你喜欢
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 2013-06-18
    • 2015-08-04
    • 1970-01-01
    相关资源
    最近更新 更多