## Android 适配总结
### values-swxxdp用来做适配,表示最小宽度
最小宽度计算方法
```java
sw=160*手机宽度像素/dpi
```
### dpi获得方式
```java
dpi= context.getResources().getDisplayMetrics().densityDpi
比如我的vivo x7plus分辨率为1080*1920
根据上面公式得到dpi=480
那么
sw=160*1080/480=360dp
所以会在values-sw360dp下找相对应的尺寸dimens
```
### px,dp换算
```java
1 px = 1dp * density(由DPI决定)
1
density = dpi / 160
所以vivox7plus density=3
所以在1080*1920的ui图上300px等于100dp
```
## 部分常用手机数据
pixel2
560dpi
分辨率: 1440*
sw= 1440*160/560= 411
红米note5
DisplayMetrics{density=2.75, width=1080, height=2009, scaledDensity=2.75, xdpi=403.411, ydpi=403.411}
5.99英寸英寸的2160×1080
440dpi
sw= 1080*160/440= 392.8
TIPS: 奇怪的是用sw380无法适配到,用sw365才能适配的到
pixel,一加 6
420dpi
sw:1080 *160/ 420 =411
vivo Y79A
320dpi
720
sw: 720*160/320= 360
sw=160*手机宽度像素/dpi
1080 *160/ 420 =411
dpi= context.getResources().getDisplayMetrics().densityDpi
pu
## DisplayMetrics 类中定义的变量
DENSITY_XXXHIGH = 640; 4:
480 xxhdpi 3
6
320 xhdpi 2
240 hdpi: 1.5
160 dpi :: 基准:1
## Sketch 配合使用
1. 图片使用 XXHDPI@3X图片,放在 Drawable-xxHDPI里面
2. 布局直接放在layout中,使用 xhdpi的标注数值。