众所周知
由于Android系统的开放性,任何用户、开发者、OEM厂商、运营商都可以对Android进行定制,于是导致:
- Android系统碎片化:小米定制的MIUI、魅族定制的flyme、华为定制的EMUI等等Android机屏幕尺寸碎片化:5寸、5.5寸、6寸等
- 当Android系统、屏幕尺寸、屏幕密度出现碎片化的时候,就很容易出现同一元素在不同手机上显示不同的问题。
所以我们需要屏幕适配(个人理解就是不同的屏幕尺寸,像素不同,图片文字等需要相应的改变)
基础知识点:屏幕尺寸
- 含义:手机对角线的物理尺寸
- 单位:英寸(inch),1英寸=2.54cm
Android手机常见的尺寸有5寸、5.5寸、6寸等等
屏幕分辨率
- 含义:手机在横向、纵向上的像素点数总和
- 一般描述成屏幕的"宽x高”=AxB
- 含义:屏幕在横向方向(宽度)上有A个像素点,在纵向方向
(高)有B个像素点 - 例子:1080x1920,即宽度方向上有1080个像素点,在高度方向上有1920个像素点
- 单位:px(pixel),1px=1像素点
UI设计师的设计图会以px作为统一的计量单位
- 含义:每英寸的像素点数
- 单位:dpi(dots per ich)
假设设备内每英寸有160个像素,那么该设备的屏幕像素密度=160dpi
- 安卓手机对于每类手机屏幕大小都有一个相应的屏幕像素密度:
| 密度类型 | 代表的分辨率(px) | 屏幕像素密度(dpi)|
| ------------- |:-------------:|
| 低密度(ldpi) | 240x320 | 120 |
| 中密度(mdpi) | 320x480 | 160 |
| 高密度(hdpi) | 480x800 | 240|
| 超高密度(xhdpi) | 720x1280 | 320|
| 超超高密度(xxhdpi) | 1080x1920 | 480 |- dp:最常用的长、宽、margin、padding等的单位
- sp:字体的单位,和dp差不多,区别是如果字体使用的sp为单位,那如果你手机字体调大了,那你app的字体会随之变大,如果用dp则不会变化。
- px:像素
- dpi:dots per inch,即每英寸上有多少个像素,也就是屏幕密度
作者:姚瑶大坏蛋(这个作者的比较简单易懂,分类清晰)
Dimens 尺寸; 帝梦诗;
生成对应屏幕分辨率的的dimens文件即可完成适配,缺点也比较明显,就是一种分辨率就需要一套dimens文件,所以dimens文件会比较多;(所以好麻烦)
至于如何适配图片和语言只要在andirod目录下创建相应的文件夹即可
一样的animal在不同的分辨率下是不同的图片(为什么是不同的图片,方便区分呐)
例如:value—en则是英文版 jp就是日本了
先写这么多了,有时间补充