我几乎完成了Android应用程序的开发。但似乎有一个问题。当我开始处理该项目时,我只使用默认的1.5设备分辨率,即320x480。但是现在当我处于测试阶段时,我开始在1.5和2.0中以480x800和480x854进行测试。这些分辨率未在1.5 AVD管理器中定义,因此我使用提供的工具创建自己的分辨率。我设置分辨率加上新的dpi(大显示器为240,小显示器为16o)。所以这就是我测试时发生的事情。
在1.5中,当我将常量设置为高分辨率并运行具有特定AVD的应用程序时,我获得了比例且对齐良好的组件,但图像具有相同的分辨率,文本字体也保持其大小。当然整个布局都会延伸,所以现在我的ListActivity中有更长的行。
另一方面,在2.0中,我根本没有改变常量。但是那里的情况是应用程序的外观保持不变。图片被拉伸以适应他们新扩展的容器,但一切看起来像我正在开发应用程序的原始分辨率,只是更大。
我的问题是为什么以及如何发生这种情况?关于布局,2.0中有一些修改,但究竟是什么?我怎样才能让我的应用程序在1.5中看起来与2.0一样?
我难以描述这种情况,因为法律问题我无法发布任何截图。因此,如果您需要任何澄清,请不要犹豫。所有帮助表示赞赏。谢谢。
P.S。当我的意思是测试时,我的意思是仅在模拟器上。没有使用过真正的设备。
答案 0 :(得分:2)
引用自己:
如果您的应用程序已编译为 Android 1.5或更低版本,Android会 假设您的应用程序已设计 在经典的屏幕上看起来不错 大小和分辨率。然后Android会 自动执行以下操作:
- 如果您的应用程序安装在屏幕较大的设备上, Android将运行您的应用程序 “兼容模式”,缩放 一切都基于实际的屏幕 尺寸。所以,假设你有一个24px 方形PNG文件和Android安装 并在设备上运行您的应用程序 标准的物理尺寸但是 WVGA分辨率(所谓的 “高密度”屏幕)。 Android可能 将PNG文件缩放为36px 显示它,所以它将占用 屏幕上的可见空间相同。上 加上方,Android处理这个问题 自动;在负面, 位图缩放算法倾向于制作 图像有点模糊。
- Android会阻止您的应用在设备上运行 屏幕较小。因此,QVGA 设备,如HTC Tattoo,将是 甚至无法得到你的申请 如果它在Android上可用 市场。
如果您的应用程序是针对Android 1.6或更高版本编译的,则Android会假定您是正确的 处理所有屏幕尺寸,因此不会以“兼容模式”运行您的应用程序。
我建议您阅读以下内容:
(注意:AndroidGuys链接可能加载速度有点慢 - 他们的网站存在一些问题)
引用的段落来自上面的第三个项目符号项目。
答案 1 :(得分:1)
看一下Supporting Multiple Screens上的android文档。基本上1.5 SDK只是真正意味着显示HVGA内容,1.6 SDK是第一个真正支持多种分辨率的版本。
FTA:
Android 1.5及更早版本 该平台旨在支持 单屏配置 - HVGA (3.2x480)分辨率在3.2英寸屏幕上。
...
从Android 1.6开始, 平台增加了对多个的支持 屏幕尺寸和分辨率, 反映了许多新的类型和 平台所用设备的大小 会跑。
所以基本上不用担心Android 1.5中的多个分辨率,我总是使用1.6SDK编译我的代码以获得多分辨率支持,但是将minimumSDK设置为1.5以便覆盖更广泛的用户。