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文件夹。可以使用这些创建的图形,最好不用图片资源。
selector:http://blog.csdn.net/jiankeufo/article/details/73845750?from=singlemessage
shape:https://www.cnblogs.com/popfisher/p/6238119.html
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概念梳理以及如何做到屏幕适配
http://blog.csdn.net/jiangwei0910410003/article/details/40509571
https://www.jianshu.com/p/23324a57352d
9. | 密度类型 | 代表的分辨率(px) | 屏幕像素密度(dpi)|
| ------------- |:-------------:|
| 低密度(ldpi) | 240x320 | 120 |
| 中密度(mdpi) | 320x480 | 160 |
| 高密度(hdpi) | 480x800 | 240|
| 超高密度(xhdpi) | 720x1280 | 320|
| 超超高密度(xxhdpi) | 1080x1920 | 480 |
屏幕尺寸、分辨率、像素密度三者关系
一部手机的分辨率是宽x高,屏幕大小是以寸为单位,那么三者的关系是:
Android 屏幕适配:最全面的解决方案:
https://www.jianshu.com/p/ec5a1a30694b
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
http://blog.csdn.net/ys743276112/article/details/51910874
12. 注意小数点强制转换后的精确度降低导致的显示问题。例如: 前面几个布局的高度都四舍五入相加后,总高度的和可能会少了两三个像素px单位。