HVGA (480x320) 布局在超高密度 Android ICS 设备 (Samsung Galaxy Nexus) 中呈现
我有一个向后兼容的应用程序,它使用屏幕特定布局(仅适用于 HVGA)。我的布局结构如下: 资源/布局 res/layout-480x320(适用于 HVGA) layout-480x320 包含一些特定的 XML。
清单如下:
<uses-sdk android:minSdkVersion="7"
android:targetSdkVersion="11"
android:maxSdkVersion="15"/>
当我在 Galaxy Nexus (720x1280) 中运行此应用程序时,kayout 是从 480x320 文件夹中获取的。我已经在 2.1 目标和 4.0 目标上构建了它。两者都会产生相同的结果。 任何人都可以帮忙吗?
I have a backward compatible app which is using screen specific layout (only for HVGA). Structure of my layout is as follows:
res/layout
res/layout-480x320 (for HVGA)
layout-480x320 contains few sepcific XMLs.
Manifest is as follows:
<uses-sdk android:minSdkVersion="7"
android:targetSdkVersion="11"
android:maxSdkVersion="15"/>
When I am running this app in Galaxy Nexus (720x1280), the kayout is taken from 480x320 folder. I have built it on 2.1 target and 4.0 target. Both are resulting same result.
Can anyone please help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是对 ICS 4.0(或可能是 3.2)的一个重大更改。
预ICS:
如果您指定“layout-480x320”,如果您的设备是 HVGA,它将找到并完全匹配并从此文件夹中获取,否则它将回退到“layout”文件夹。
工业控制系统:
如果您指定“layout-480x320”,Android 认为此布局适用于任何“相同或高于”480x320 的分辨率,因此它不会回退到“layout”文件夹。所以你必须提供另一个更高分辨率的文件夹。
所以,现在它不是完全匹配,而是基于“范围”的匹配。
我不知道这是一个功能还是错误。但浏览文档后发现,这是一个功能。 :)
This is a stange change made to ICS 4.0 (or may be 3.2).
Pre ICS:
If you specify "layout-480x320" it finds and exact match and take from this folder if you device is HVGA, else it will fallback to "layout" folder.
ICS:
If you specify "layout-480x320" Android think this layout is good for any resolution which is "same OR ABOVE" 480x320, hence it does not fall back to "layout" folder. So you have to provide another folder with higher resolution.
So, now it not EXACT match but a "Range" based matching.
I dont know if this is a feature or bug. But going through the documentation it seems, it is a feature. :)