Android 学习 之 自适应UI优化篇

Galaxy Tab是一个拥有7英寸1024×600(WSVGA) 分辨率的屏幕,运行Android 2.2(升级Froyo)的平板电脑。下面的指南将帮助我们优化应用程序界面,获得最佳的用户体验。

1、使用高分辨率[high density display (HDPI)]的图片资源

从Android 1.6开始,增加了对多种屏幕尺寸和分辨率的支持,具体的定义如下:
screen sizeslarge, normal, small
densitieshigh (hdpi), medium (mdpi), low (ldpi)
这些属性在AndroidManifest.xml中的定义如下:
<supports-screens
android:largeScreens=”true
android:normalScreens=”true
android:smallScreens=”true
android:resizable=”true
android:anyDensity=”true” />
结合Galaxy Tab平板电脑,在应用程序包中使用高分辨率[high density display (HDPI)]的图片资源,使用minSDKVersion为4或更高版本,这样就可以在应用程序包中添加高分辨率的图片资源。将AndroidManifest.xml文件中的android:anyDensity属性设置为”true”,当系统找不到高分辨率的图片资源时,可以缩放当前已经存在的图片资源,但是这样可能没有给用户最好的体验。为了支持minSDKVersion为3的设备,同时还必须将AndroidManifest.xml文件中的android:largeScreens属性设置为“true”。

2、Galaxy Tab平板电脑的默认

DeviceMetrics.density = 240
DeviceMetrics.xdpi = 168
DeviceMetrics.ydpi = 168
Density属性[ro.sf.lcd_density]默认设置为 240
属性值具体的含义,如下图所示:

在实际开发中,我们必须考虑以上默认的设置。

3、位图资源的缩放

当对位图资源进行缩放处理时,充分考虑设备的高度和宽度,在程序运行时获取设备的高度和宽度代码如下:
WindowManager mWMgr mWMgr =
(WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
int width = mWMgr.getDefaultDisplay().getWidth();
int height – mWMgr.getDefaultDisplay().getHeight();

4、下面列举一些强烈推荐的建议:

  • 在XML布局,使用wrap_content和fill_parent来填充整个父窗口;
  • 使用FrameLayout的,而不是AbsoluteLayout,减少界面布局对屏幕大小的依赖;
  • NEVER use hard-coding for pixel value, use dip (density independent pixel);
  • 根据density和resolution 为不同的设备准备合适的图片资源。

转自:http://www.moandroid.com/?p=2020

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值