客户端开发 Android屏幕密度(Density)和分辨率的关系UI开发

本文探讨了Android客户端开发中屏幕密度(Density)和分辨率的关系,提供了换算公式,并介绍了针对三星Galaxy Tab平板电脑的界面优化策略,包括使用高分辨率图片资源、考虑默认的DeviceMetrics设置以及避免像素硬编码,建议根据density和resolution适配不同设备的位图资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
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 为不同的设备准备合适的图片资源。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lixp3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值