Android 1.6 的一个重要改变就是支持更多类型的屏幕大小。这无论是对于硬件制造商还是对终端用户都是一个好消息,但是对开发人员来说就得另当别论了,因为这就意味着他 们在发布自己的程序前不得不做更多的测试和调整以适应拥有不同屏幕大小的设备。当然,Android 支持更多的设备也是我们希望看到的,有得必有失嘛,我们还是停止抱怨来看看如何应对吧。

到目前为止,市面上的 Android 设备(T-Mobile G1 和 Samsung I7500 等等)的屏幕都是 HVGA(320x480)的,在 1.6 里面,设备屏幕大小被分为了三类:
1. 小屏:比 G1 和 I7500 小的。比如最近的 HTC Tattoo
2. 中屏:就是和 G1、I7500 一样大的啦
3. 大屏:顾名思义就是大于上述两者的喽
这个分类老霸道了,Google 对此的的说法更霸道:“所有的设备都可以划分到这三类之一中”。
同时 1.6 中还有如下新功能:
1. 可以在 AndroidManifest 中指定你的软件支持何种类型的屏幕(大、中、小)
2. 使用新增的 API 以屏幕大小无关的方式使用图片资源和布局
3. Android 1.6 中现有程序(使用 1.6 之前的 SDK 写的程序)可以运行在一个模拟的 HVGA 环境中。
现有程序如果不升级到 1.6 的 SDK,Market 会认为它是针对中屏设备的,默认只在中屏和大屏的设备上显示,当然大屏设备将以上述的模拟HVGA 兼容模式运行这些程序。小屏只能使用那些明确声明支持小屏的软件。原因很简单:把大的界面缩小往往会变得很糟糕(相反,把较小的界面放大则可以接受)导致 用户体验下降,甚至有些用户会因此给你的程序糟糕的评价(看 Google 多会为开发者着想 ;))。
Google 说小屏设备(HTC Tattoo?)有望在圣诞节之前投入市场(可能不是圣诞节,原文为:in time for the
holiday season。是哪个 holiday?望达人指教),并且不是所有的设备都会同时升级到 1.6,所以就算 1.6 大行其道,还是
会有相当一部分设备仍然运行 1.5。也就是说,开发者在选择 SDK 版本时必须纠结一番喽。Google 给出的建议是:如果你只想发布一个
apk 且想让它可以同时运行于 1.5 和 1.6 的话,使用 1.5 SDK 编译你的程序,然后在 1.5 和 1.6 系统上测试;如果你的
程序想抢占 HTC Tattoo 的市场,使用 1.6 吧;如果你想让你的程序在三种大小屏幕的设备上都能完美运行的话,使用 1.6 吧(似乎只能写三个版本的UI喽)。

转载自: http://www.51x86.com/linchuan/blog/10-01/183479_56f99.html

附注:

经测试,在android1.6中,如需支持除HVGA的其它分辨率,需在AndroidManifest.xml中加入行:

<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true" />

否则,一率会以480x320的分辨率进行显示。

res/layout/my_layout.xml // layout for normal screen size
res
/layout-small/my_layout.xml // layout for small screen size
res
/layout-large/my_layout.xml // layout for large screen size
res
/layout-large-land/my_layout.xml // layout for large screen size in landscape mode

res
/drawable-ldpi/my_icon.png // icon image for low density
res
/drawable-mdpi/dpi/my_icon.png // icon for medium density
res
/drawable-hdpi/my_icon.png // icon image for high density

res
/drawable-nodpi/composite.xml // density independent resource


Low density (120),ldpi

Medium density (160),mdpi

High density (240),hdpi

Smallscreen

· QVGA (240x320),2.6"-3.0" diagonal

Normalscreen

· WQVGA (240x400),3.2"-3.5" diagonal

· FWQVGA (240x432),3.5"-3.8" diagonal

· HVGA (320x480),3.0"-3.5" diagonal

· WVGA (480x800),3.3"-4.0" diagonal

· FWVGA (480x854),3.5"-4.0" diagonal

Largescreen

· WVGA (480x800),4.8"-5.5" diagonal

· FWVGA (480x854),5.0"-5.8" diagonal

更多相关文章

  1. 移动APP测试-Android屏幕适配问题(一)
  2. Android初试--了解和认识Android
  3. android 系统开发
  4. Android(安卓)Context关于POWER_SERVICE的实际应用
  5. 创建点对点WiFi直连——翻译自developer.android.com Training
  6. Android流媒体开发之路三:基于NDK开发Android平台RTSP播放器
  7. 代码实例 -- 在程序里检查虚拟键盘状态, 并开启关闭
  8. android面试2
  9. Android(安卓)OpenglES教程(1)

随机推荐

  1. 如何去掉ListView底部的ListDivider
  2. Android(安卓)gradle 命令行打包
  3. 启动模式详解
  4. Android文件下载使用Http协议
  5. android HttpURLConnection 连接网络 读
  6. android 中让activity全屏幕显示
  7. Android下载网络图片到本地
  8. android——Bitmap.Config ARGB_8888
  9. android 让TextView自带滚动条
  10. Android(安卓)监听 home键和菜单键