Android图片适配分辨率,Android多分辨率适配总结

1. 使用dp单位

2. 在需要适配的地方使用引用,在不同的最小屏幕和像素密度的文件夹里面创建一份对应的尺寸。例如: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi, sw320dp-hdpi, sw320dp-xxhdpi, sw360dp-hdpi, sw411dp-xxhdpi, w360dp, h360dp, values-480x320, values-854x480, values-1920x1080, values-v11, values-v14, values-24等等。

3. selector, layer-list, shape, vector, animated-vector, path标签等xml文件放在drawable文件夹。可以使用这些创建的图形,最好不用图片资源。

4. 图片资源创建一套放在drawable-xxhdpi,Android系统会根据设备的分辨率来自动缩放适配,不用为不同分辨率的设备创建多套图片资源,以达到减少apk大小。

5. 使用.9文件(nine-patch)图片,可以满足特殊拉伸图片的情况。这样就不用为每种分辨率创建一套图片资源。

6. 在代码中动态需要使用像素px单位的地方,可以通过设备密度来计算 px = (int)(density * dp) + 0.5 来计算出来。tip:这里加0.5是为了四舍五入的作用。

7. 对于字体大小使用sp, dp的区别:

- 当修改系统字体大小时,字体大小以dp为单位时,大小不变;

- 当修改系统字体大小时,字体大小以sp为单位时,大小跟随变化;

dp:

dp是一种密度无关像素,对应于 160dpi 下像素的物理尺寸

sp:

sp是和dp相同的基本单位,但它会按用户首选的文本尺寸进行缩放(属于缩放无关像素)

从源代码注释可以看到:

scaledDensity会收到用户配置的影响,而density不会.

这也就是为什么设置sp单位时字体大小会受到用户配置系统字体的影响.

8. Android中dp,px,sp概念梳理以及如何做到屏幕适配

9. | 密度类型 | 代表的分辨率(px) | 屏幕像素密度(dpi)|

| ------------- |:-------------:|

| 低密度(ldpi) | 240x320 | 120 |

| 中密度(mdpi) | 320x480 | 160 |

| 高密度(hdpi) | 480x800 | 240|

| 超高密度(xhdpi) | 720x1280 | 320|

| 超超高密度(xxhdpi) | 1080x1920 | 480 |

屏幕尺寸、分辨率、像素密度三者关系

ce3af1674c7b

一部手机的分辨率是宽x高,屏幕大小是以寸为单位,那么三者的关系是:

ce3af1674c7b

Android 屏幕适配:最全面的解决方案:

10. 使得布局元素自适应屏幕尺寸

使用相对布局(RelativeLayout),禁用绝对布局(AbsoluteLayout)

开发中,我们使用的布局一般有:

线性布局(Linearlayout)

相对布局(RelativeLayout)

帧布局(FrameLayout)

绝对布局(AbsoluteLayout)

用"wrap_content"、"match_parent"和"weight“来控制视图组件的宽度和高度

11. 常用图标规范尺寸:

L DPI ( Low Density Screen,120 DPI ),其图标大小为 36 x 36 px

M DPI ( Medium Density Screen, 160 DPI ),其图标大小为 48 x 48 px

H DPI ( High Density Screen, 240 DPI ),其图标大小为 72 x 72 px

XH DPI ( Extra-high density screen, 320 DPI ),其图标大小为 96 x 96 px

XXH DPI( xx-high density screen, 480 DPI ),其图标大小为144 x 144 px

XXXH DPI( xxx-high density screen, 640 DPI ),其图标大小为192 x 192 px

12. 注意小数点强制转换后的精确度降低导致的显示问题。例如: 前面几个布局的高度都四舍五入相加后,总高度的和可能会少了两三个像素px单位。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值