13

我在 stackoverflow 中看到了很多讨论这个问题的线程(比如thisthisthis),并且我已经阅读了有关支持多个屏幕和设计的文档。但我仍然不清楚drawables的文件夹结构和不同屏幕的布局

我正在开发一个支持安卓手机和平板电脑的应用程序。我的项目显示了一些图像,这些图像需要在所有可能的 android 设备中以高质量显示。我需要告诉我的设计师为所有这些分辨率进行设计。

从文档看来,我应该为以下分辨率添加可绘制对象(最后给出可绘制文件夹名称),

1) 240 x 320  - Phone LDPI  -> drawable-ldpi

2) 320 x 480  - Phone MDPI  -> drawable-mdpi

3) 480 x 800  - Phone HDPI  -> drawable-hdpi

//Now for tablets

4) 1024x600   - Tablet LDPI -> ??

5) 1280x800   - Tablet MDPI -> ??

6) 1536x1152  - Tablet HDPI -> ??

7) 2560x1600  - Tablet XHDPI-> ??

从支持多屏幕文档,看来我可以使用像这样的文件夹

1) drawable-sw600dp  ( a 7” tablet (600x1024 mdpi).)
2) drawable-sw720dp   (a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).

但是分辨率在 1536x1152、2560x1600 等范围内的平板电脑呢?10' 分辨率范围(720 x 1280 等)对他们来说似乎很小。我的客户有一个分辨率为 2560×1600 的 Nexus 10,我希望我的应用程序能够看起来很完美..

我知道,九个补丁图像,布局使用wrap_content和其他类似的良好实践。但是对于这个项目,我有一些图像,根据要求,应该在所有常见的屏幕上都能看到清晰锐利的图像,而且我至少在我的包中需要这些图像的多个版本。

那么我应该向设计师提及什么和什么决议呢?以及如何将它们分类为提供正确文件夹名称的捆绑包。

4

5 回答 5

18

实际上,平板电脑是按尺寸分类的,而不是按 dpi 分类的,即 7" 标签是drawable-large10" 标签drawable-xlarge。现在您可以再次按 dpi 进行分类,drawable-large-hdpi这意味着它是一个 7" 的标签,具有高密度。

您可以使用SW最小宽度概念来定位,请参阅应用程序骨架以支持多个屏幕并进行相同计算。

平板电脑 平板电脑分为两种尺寸。

7" (1024X(600-48(导航栏))) = 1024 X 552 (drawable-large)
10" (1280X(800-48(navigation bar))) = 1280 X 752 (drawable-xlarge)

对于 2560x1600,使用公式计算 SW dp

px= 设备宽度
dpi= 设备密度

给出的公式

px = dp * (dpi / 160)

如果您有 px 的值,则交换公式

dp = px / (dpi / 160)

所以 drawable-swxxxdp 将完成这项工作

于 2013-01-04T04:42:09.500 回答
2

AFAIK 设备显示有两种变量:像素密度和屏幕尺寸。两者在理论上都是独立的,尽管在市场上两者都从低端设备到高端设备有所不同。

不同位图分辨率和细节级别的像素密度要求(例如 36X36 到 96X96 图标)。

屏幕尺寸需要更好地利用房地产(例如手机的多活动布局,平板电脑的组合碎片布局)。不像像素密度那么重要,但拥有它很好,因为平板电脑用户可能会发现手机布局过于平淡,而且浪费了屏幕空间。

所以:

  • 要覆盖大多数像素密度,您必须拥有不同 版本的可绘制对象ldpi,mdpi,hdpi and xhdpi。更喜欢九个补丁的drawable,这些在任何地方都适合。

  • 要覆盖大多数屏幕尺寸,您必须有不同的布局安排,以及值的响应 式布局设计small,large and xlarge此外,有时可以使用不同的纵向和横向布局。

  • Android 也允许您混合配置组合。例如drawable-large-hdpi等。

  • 不惜一切代价避免硬编码像素坐标和尺寸,使用密度或百分比。

  • 拥有一个灵活的九个补丁绘图比为不同的屏幕尺寸拥有不同的绘图更好。

于 2013-01-04T04:52:17.450 回答
2

我们还可以将 xxhdpi 用于可绘制对象,例如 drawable-xxhdpi

xxhdpi(480dpi,Android 4.1 或更高版本)

或参考以下链接中的“Android 表格列”

http://en.wikipedia.org/wiki/Smartphone

于 2013-04-01T07:20:59.727 回答
1

我开始使用的是:

  • 一个布局文件夹(或第二个:layout-land)
  • 一些带有dimens.xml(-hdpi、-large、-xlarge)的值文件夹,用于不同的大小、字体等。
  • drawables:-hdpi 与大多数图像,它们按比例缩小到所有手机;-large 用于 7 英寸平板电脑;-xlarge 用于 10 英寸平板电脑。或者只是-hdpi 和-large。

我可能会验证这种方法,即使用 -sw600dp 和 -sw720dp 但现在它可以工作。

于 2013-02-14T08:36:19.150 回答
-1

您好,我认为 android 可绘制分辨率是-

10" - 1280 X 800

7" - 1024 X 600

xhdpi - 960 x 720

高清画质 - 800 X 480

mdpi - 480 X 320

于 2013-10-18T04:40:12.283 回答