Android 2.0 中的分辨率支持
Posted
技术标签:
【中文标题】Android 2.0 中的分辨率支持【英文标题】:Resolution support in Android 2.0 【发布时间】:2010-12-14 22:20:12 【问题描述】:收到了我的第一位摩托罗拉 Droid 用户的电子邮件。 android 2.0 中引入的新的 480x854 分辨率(而不是 320x480)对我的用户界面造成了严重破坏。一切都变小了,位置也不好。
我的印象是,如果我们遵循 XML 布局指南,我们是分辨率安全的,因为没有使用绝对坐标。有没有人有使 UI 分辨率安全的经验?我们需要每个分辨率和每个方向的 main.xml 吗?
【问题讨论】:
【参考方案1】:您使用了哪些维度单位?
使用 dp
和 sp
的 AFAIK 应该可以确保您的安全。
来自文档:
dp 与密度无关的像素 - 基于 屏幕的物理密度。这些 单位是相对于 160 dpi 屏幕,所以一个 dp 是一个像素 160 dpi 屏幕。的比率 dp-to-pixel 会随着 屏幕密度,但不一定在 正比例。注意:编译器 接受“dip”和“dp”,不过 “dp”与“sp”更一致。
sp 与比例无关的像素 - 这就像 dp 单位,但它也是 按用户的字体大小缩放 偏爱。建议您使用 这个单位在指定字体大小时, 因此它们将针对两者进行调整 屏幕密度和用户偏好。
【讨论】:
谢谢你,Marcin,我不知道。将尽快阅读有关它的信息!问候 如果文档没有说得很清楚:使用 sp 表示字体大小,使用 dp 表示非字体的大小,如填充、边距和尺寸。【参考方案2】:eclair 模拟器为这些问题创造了奇迹,还请务必阅读:
http://developer.android.com/guide/practices/screens_support.html
您的应用程序会根据许多因素(甚至是 min-sdk)响应不同的分辨率。 此外,该页面还提供了一些最佳实践:
在 XML 布局文件中首选 wrap_content、fill_parent 和 dip 单位而不是 px 避免绝对布局 不要在代码中使用硬编码的像素值 使用密度和/或分辨率特定的资源
【讨论】:
【参考方案3】:除了分辨率差异之外,另一件需要考虑的事情是 Droid 的 WVGA 屏幕与 G1 等之前的设备具有不同的纵横比。在我下载的许多较旧的应用程序中,这表现为屏幕底部的间隙,或者在纵向模式下垂直未对齐的元素。您可能想尝试在具有 WVGA 外观的模拟器中运行您的应用,以检查您的布局对纵横比所做的任何隐藏假设。
【讨论】:
以上是关于Android 2.0 中的分辨率支持的主要内容,如果未能解决你的问题,请参考以下文章
PyGame 应用程序中的 SVG 渲染。在 Pygame 2.0 之前,Pygame 不支持 SVG。那你是怎么加载的?