1.换算公式:
px = (density/160)dp
density一般为3个常用固定值240/160/120
分别对应WVGA/HVGA/QVGA
不知道知己做的分辨率对应的density是多少可以点击AVD Manager里新建一个模拟器或者选择已有的模拟器点details就可以看到了(1.6以上包括1.6才可以查)
补充:dp跟dip是一样的,但px跟dp(dip)绝对不一样,唯一的情况只有在HVGA分辨率下才是一样,因为HVGA分辨率对应density为160,与除数一样,所以做的时候才会没感觉到差别
2.关于pad端为三星Galaxy Tab平板电脑开发Android程序–界面优化篇
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中的定义如下:
1 2 3 4 5 6 | <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、位图资源的缩放
当对位图资源进行缩放处理时,充分考虑设备的高度和宽度,在程序运行时获取设备的高度和宽度代码如下:
1 2 3 4 | |
4、下面列举一些强烈推荐的建议:
- 在XML布局,使用wrap_content和fill_parent来填充整个父窗口;
- 使用FrameLayout的,而不是AbsoluteLayout,减少界面布局对屏幕大小的依赖;
- NEVER use hard-coding for pixel value, use dip (density independent pixel);
- 根据density和resolution 为不同的设备准备合适的图片资源。