Android屏幕适配

1.屏幕像素密度DPI的计算,dots per inch

image.png

(宽宽+高高)/英寸数 = 像素密度

image.png

根据像素密度就可以对应出这个手机的高清程度了,然后将对应的图片放到对应的文件夹下


image.png

2.px dp sp 分别代表什么


image.png

3.dimens适配
图片适配只能是在处理图片上的适配,如果要适配的控件不是图片的话怎么办?我们还有其他的适配方案,接下来我介绍一下另一种适配方案:dimens适配

dimens是dimension(尺寸)的简称,我们每个控件的宽高都可以通过一些固定值来设置尺寸

所以,希望在不同分辨率设备上控件的宽高尺寸不一样(比如1280x720上是200px,800x480上却不按比例显示,想显示成100px),就可以通过设置dimens.xml来进行屏幕适配。通过多个values文件夹下(values-1280x720、values-480x320等等文件夹)放置dimens文件,


image.png

里面写上相同名称的dimen


image.png
image.png
  1. layout适配
    跟dimens适配的写法很类似的,还有一种layout适配

比如说在手机上可以是一种layout,在平板上可以是另一种layout

image.png

原理类似于dimens适配,只是改成创建一个layout布局xml文件来为某个布局页面进行单独适配。
步骤、原理仿照于第三个dimens适配,不再列出。
这里总结说明:手机运行app时,会先通过当前手机的分辨率、版本等信息,来按照格式读取不同的资源文件(格式:资源文件夹-。。。。横杠后面可以写hdpi、分辨率、版本、sw等,需要按照这个格式去写,不然Android编译生成app时会不识别,直接报错)

5.根据权重来适配
这个是在xml文件中通过weight来进行设置的,比如说两个view都设置weight是100,那么两个view就会平分父控件的空间

6.通过百分比布局来适配
google官方提供了一个百分比布局,它可以供开发者进行屏幕适配。使用的前提是:
Android SDK v22 or high
Android Build Tools v22.0.1 or high
Android Percent Support Repository v22.2.0 or high
Android Support v4 Repository v22.2.0 or high

添加依赖
在你的moudle中的build.gradle文件里添加一下依赖:
dependencies {
compile 'com.android.support:percent:22.2.0'
}

该百分比布局中包含了可以使用百分比的相对布局PercentRelativeLayout和使用百分比的帧布局PercentFrameLayout。


image.png

你可能感兴趣的:(Android屏幕适配)