android - 创建覆盖大多数 Android 设备的布局集

标签 android android-layout dpi

我正在开发一个客户希望在所有支持设备上具有相同外观的应用程序。此应用程序将支持以下设备的 Android 4.0.3 或更高版本。

  • 中高端手机肖像(包括 Phablet)
  • 7"平板电脑纵向(与手机布局相同)
  • 10 英寸横向平板电脑

如果我创建这样的布局

  • 布局(中端手机、高端手机、平板手机和 7 英寸平板电脑)
  • layout-sw720dp-land(适用于 10 英寸平板电脑)

并定义所有的 ui 尺寸和 drawable

  • values-sw320dp, drawable-sw320dp(大部分中端手机)
  • values-sw360dp, drawable-sw360dp(大部分高端手机)
  • values-sw480dp、drawable-sw480dp(一些平板手机,如 Samsung Galaxy Mega)
  • values-sw600dp、drawable-sw600dp(7 英寸平板电脑)
  • values-sw720dp、drawable-sw720dp(10 英寸平板电脑)

我的问题是

  1. 这会涵盖我提到的所有设备吗?
  2. values 等于 values-sw320dp,对吗?
  3. 像 Samsung Galaxy Tab 2 7"这样的设备有一个屏幕控制,所以它的 dp 实际上低于 600dp。然后,在我的例子中,它将从 sw480dp 加载值和可绘制对象,是否正确?

谢谢。

最佳答案

Will that covering all the devices I mentioned?

从给出的列表来看,您应该已经涵盖了所有情况。请注意,根据设备的尺寸/分辨率,没有硬性规定设备是手机还是平板电脑。这是一个 general guideline谷歌:

To help you target some of your designs for different types of devices, here are some numbers for typical screen widths:

  • 320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
  • 480dp: a tweener tablet like the Streak (480x800 mdpi).
  • 600dp: a 7” tablet (600x1024 mdpi).
  • 720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).

Values is equal to values-sw320dp, is that correct?

设备将根据其限定符使用最合适的任何资源。如果设备的最小宽度在 320dp-359dp 之间,它将同时使用来自 /values-sw320dp/drawables-sw320dp 的资源。如果它在 360dp-479dp 之间,它将使用下一个。同时,一般/默认资源应该放在 /values/drawable 中(没有限定符)。


Device like Samsung Galaxy Tab 2 7" has an onscreen control so its dp is actually lower than 600dp. Then, in my case, it will load values and drawables from sw480dp, is it correct?

同样,来自 Android developer's guide :

The smallestWidth of a device takes into account screen decorations and system UI. For example, if the device has some persistent UI elements on the screen that account for space along the axis of the smallestWidth, the system declares the smallestWidth to be smaller than the actual screen size, because those are screen pixels not available for your UI.

根据这个定义,软菜单等系统UI不计入计算。你对这个概念是正确的。


毕竟,您应该使用真实设备/模拟器测试所有布局并查看最终结果。通过使用模拟器,您可以轻松指定配置以进行测试。

关于android - 创建覆盖大多数 Android 设备的布局集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25112492/

相关文章:

c# - 检测非 DPI 感知应用程序是否已缩放/虚拟化

Android ADB Shell ~ 如何列出一个进程的线程?

android - 跨不同 Activity 保存和加载布局

android - 如何使应用程序兼容平板电脑?

windows - SetProcessDpiAwareness 错误代码

wpf - 如何获得(lcd)显示器对角线的实际尺寸,即如果是 17 英寸或 19 英寸或其他?

kiicloud 中的 android 和 web app 我可以在 kiicloud 中同步它们的数据吗?

android - 以编程方式在 View 上添加填充

android - Sqlite 数据库实例线程安全吗

Android List + Adapter 仅显示第一个条目