image.png1.屏幕像素密度DPI的计算,dots per inch
(宽宽+高高)/英寸数 = 像素密度
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
- 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
网友评论