6

我尝试过:

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

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

任何帮助都感激不尽

提前致谢

4

2 回答 2

17

基本上存在三个主要的设备类别,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 版本,那么在这种情况下,在具有旧大小的目录中创建每个资源的副本限定符并将其放置在另一个具有相应最小宽度限定符的目录中。

例如,在和中保存相同的dimens.xml文件。因此,在低于 3.2 的 android 版本上运行的设备将从中获取值,在高于或等于 3.2 的 android 版本上运行的设备将从values-largevalues-sw600dpvalues-largevalues-sw600dp

于 2014-06-25T06:21:34.290 回答
3

//您需要在 API 级别 3.2 及更高版本中运行它。

对于 <3.2,您需要声明正常的 values-large 和 values-xlarge

于 2013-01-02T07:59:19.890 回答