收到了我的第一个摩托罗拉 Droid 用户的电子邮件。Android 2.0 中引入的新的 480x854 分辨率(而不是 320x480)对我的用户界面造成了严重破坏。一切都变小了,而且位置不佳。
我的印象是,如果我们遵循 XML 布局指南,我们的分辨率是安全的,因为没有使用绝对坐标。有没有人有使 UI 分辨率安全的经验?我们需要每个分辨率和每个方向的 main.xml 吗?
收到了我的第一个摩托罗拉 Droid 用户的电子邮件。Android 2.0 中引入的新的 480x854 分辨率(而不是 320x480)对我的用户界面造成了严重破坏。一切都变小了,而且位置不佳。
我的印象是,如果我们遵循 XML 布局指南,我们的分辨率是安全的,因为没有使用绝对坐标。有没有人有使 UI 分辨率安全的经验?我们需要每个分辨率和每个方向的 main.xml 吗?
您使用了哪些尺寸单位?
AFAIK 使用dp
并且sp
应该保证您的安全。
从文档:
dp Density-independent Pixels - 一个基于屏幕物理密度的抽象单位。这些单位与 160 dpi 屏幕相关,因此 1 dp 是 160 dpi 屏幕上的一个像素。dp与像素的比例会随着屏幕密度而变化,但不一定成正比。注意:编译器同时接受“dip”和“dp”,尽管“dp”与“sp”更一致。
sp 与比例无关的像素 - 这类似于 dp 单位,但它也根据用户的字体大小偏好进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好进行调整。
eclair 模拟器为这些问题创造了奇迹,还请务必阅读:
http://developer.android.com/guide/practices/screens_support.html
您的应用程序会根据许多因素(甚至是 min-sdk)响应不同的分辨率。此外,该页面还提供了一些最佳实践:
- 首选 wrap_content、fill_parent 和 dip 单位而不是 XML 布局文件中的 px
- 避免绝对布局
- 不要在代码中使用硬编码的像素值
- 使用密度和/或分辨率特定资源
除了分辨率差异之外,另一个需要考虑的是,Droid 的 WVGA 屏幕与之前的设备(如 G1)具有不同的宽高比。在我下载的许多较旧的应用程序中,这表现为屏幕底部的间隙,或者在纵向模式下垂直未对齐的元素。您可能想尝试在具有 WVGA 外观的模拟器中运行您的应用程序,以检查您的布局对纵横比所做的任何隐藏假设。