重要的概念:
一、屏幕尺寸:
屏幕对角线的长度 单位 英寸 1英寸 = 2.54cm
二、屏幕的分辨率:
屏幕宽高的像素点数 单位是 px像素
一些主流机型的分辨率: 1280×720 1920×1080 2560×1440
三、屏幕像素密度:
屏幕每英寸所含像素点数
四、dpi
单位 -- 屏幕像素密度的单位
五、px
单位 -- 像素的单位
六、sp
单位 -- 描述字体大小的单位
七、dp(dip)
独立的像素密度,与密度无关的像素
dp = px × 比例
比例 根据屏幕像素密度的不同而改变 如果屏幕的像素密度为160 dpi 则 dp与px 1:1 如果像素密度为 240dpi 则dp:px = 1:1.5 等等
适配的方案:
一、多套图片
制作多套分辨率不同的图片 来放在res 文件夹下不同的drawable资源文件夹下 ,系统会根据当前屏幕的像素密度的不同来
分别加载不同文件夹下的资源
注意:相同的图片在不同的文件夹下 名字必须一致
如果只有一套图片,则默认放在hdpi文件夹下 ,因为 系统加载该文件夹下的文件消耗最小
多套图片:不是所有的图片都需要做多套图片 一般情况下 最需要做多套图片的是 logo
二、多使用线性布局与相对布局 禁用绝对布局
使用 wrap_content match_parent weight
确保灵活使用并适应各种布局
三、布局
通过添加修饰符来加载不同的布局文件
layout-land 横向屏幕 加载该文件夹下的文件
了解
layout-small 屏幕尺寸小于3英寸左右的屏幕
layout-normal 屏幕尺寸小于4.5英寸左右的屏幕
layout-large 4英寸到7英寸之间
layout-xlarge 大于7英寸小于 11英寸
四、dimention
使用资源文件 values
新建文件夹 values-1377x899 命名规范: values 加上中横线 - 在加上屏幕分辨率中数大的 1377 加上小x 再加上屏幕分辨率 数小的 899
在该文件夹下 添加 文件 dimens.xml
使用方法与 values - dimens.xml 一样
在新建文件夹下的dimens文件中创建的值必须在 values 文件夹下 添加默认值
了解
values-small
values-normal
values-large
values-xlarge
sw<600> 最小宽度大于600 的屏幕
五、代码适配方案
通过 DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
获取屏幕宽度
定义基础宽度,计算获取到的屏幕宽度与基础宽度的比例
拿到比例后 计算每个View 的位置及大小 进行等比例缩放
所有单位为像素px 必须使用java代码的方式写布局
六、点9图片
工具路径:sdk/tools/draw9path.bat
可拉抻的图片
七、清单文件 中
supports-screens
anyDensity = true 支持任何像素密度的屏幕 默认就是支持的
八、国际化语言
创建 values文件夹 values - 加上国家缩写
在文件夹中创建string.xml 文件 将语言进行国际化转换
注意 在新建文件夹中 添加的 字符串必须在 values文件夹下 的string 里建立默认值
九、SDK 版本适配
一、屏幕尺寸:
屏幕对角线的长度 单位 英寸 1英寸 = 2.54cm
二、屏幕的分辨率:
屏幕宽高的像素点数 单位是 px像素
一些主流机型的分辨率: 1280×720 1920×1080 2560×1440
三、屏幕像素密度:
屏幕每英寸所含像素点数
四、dpi
单位 -- 屏幕像素密度的单位
五、px
单位 -- 像素的单位
六、sp
单位 -- 描述字体大小的单位
七、dp(dip)
独立的像素密度,与密度无关的像素
dp = px × 比例
比例 根据屏幕像素密度的不同而改变 如果屏幕的像素密度为160 dpi 则 dp与px 1:1 如果像素密度为 240dpi 则dp:px = 1:1.5 等等
适配的方案:
一、多套图片
制作多套分辨率不同的图片 来放在res 文件夹下不同的drawable资源文件夹下 ,系统会根据当前屏幕的像素密度的不同来
分别加载不同文件夹下的资源
注意:相同的图片在不同的文件夹下 名字必须一致
如果只有一套图片,则默认放在hdpi文件夹下 ,因为 系统加载该文件夹下的文件消耗最小
多套图片:不是所有的图片都需要做多套图片 一般情况下 最需要做多套图片的是 logo
二、多使用线性布局与相对布局 禁用绝对布局
使用 wrap_content match_parent weight
确保灵活使用并适应各种布局
三、布局
通过添加修饰符来加载不同的布局文件
layout-land 横向屏幕 加载该文件夹下的文件
了解
layout-small 屏幕尺寸小于3英寸左右的屏幕
layout-normal 屏幕尺寸小于4.5英寸左右的屏幕
layout-large 4英寸到7英寸之间
layout-xlarge 大于7英寸小于 11英寸
四、dimention
使用资源文件 values
新建文件夹 values-1377x899 命名规范: values 加上中横线 - 在加上屏幕分辨率中数大的 1377 加上小x 再加上屏幕分辨率 数小的 899
在该文件夹下 添加 文件 dimens.xml
使用方法与 values - dimens.xml 一样
在新建文件夹下的dimens文件中创建的值必须在 values 文件夹下 添加默认值
了解
values-small
values-normal
values-large
values-xlarge
sw<600> 最小宽度大于600 的屏幕
五、代码适配方案
通过 DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
获取屏幕宽度
定义基础宽度,计算获取到的屏幕宽度与基础宽度的比例
拿到比例后 计算每个View 的位置及大小 进行等比例缩放
所有单位为像素px 必须使用java代码的方式写布局
六、点9图片
工具路径:sdk/tools/draw9path.bat
可拉抻的图片
七、清单文件 中
supports-screens
anyDensity = true 支持任何像素密度的屏幕 默认就是支持的
八、国际化语言
创建 values文件夹 values - 加上国家缩写
在文件夹中创建string.xml 文件 将语言进行国际化转换
注意 在新建文件夹中 添加的 字符串必须在 values文件夹下 的string 里建立默认值
九、SDK 版本适配