下文来自:
http://www.moandroid.com/?p=2020
------------------------------------------
Galaxy Tab是一个拥有7英寸1024×600(WSVGA) 分辨率的屏幕,运行Android 2.2(升级Froyo)的平板电脑。下面的指南将帮助我们优化应用程序界面,获得最佳的用户体验。
1、使用高分辨率[high density display (HDPI)]的图片资源
从Android 1.6开始,增加了对多种屏幕尺寸和分辨率的支持,具体的定义如下:
screen sizes: large, normal, small
densities: high (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 为不同的设备准备合适的图片资源。