原文链接:https://blog.csdn.net/xiangzh...

6、屏幕适配

6.1、基本概念

屏幕尺寸

含义:手机对角线的物理尺寸 单位:英寸(inch),1英寸=2.54cm

Android手机常见的尺寸有5寸、5.5寸、6寸,6.5寸等等

屏幕分辨率

含义:手机在横向、纵向上的像素点数总和

一般描述成屏幕的”宽x高”=AxB 含义:屏幕在横向方向(宽度)上有A个像素点,在纵向方向

(高)有B个像素点 例子:1080x1920,即宽度方向上有1080个像素点,在高度方向上有1920个像素点

单位:px(pixel),1px=1像素点

UI设计师的设计图会以px作为统一的计量单位

Android手机常见的分辨率:320x480、480x800、720x1280、1080x1920

屏幕像素密度

含义:每英寸的像素点数 单位:dpi(dots per ich)

假设设备内每英寸有160个像素,那么该设备的屏幕像素密度=160dpi

6.2、适配方法

1.支持各种屏幕尺寸: 使用wrap_content, match_parent, weight.要确保布局的灵活性并适应各种尺寸的屏幕,应使用 “wrap_content”、“match_parent” 控制某些视图组件的宽度和高度。

2.使用相对布局,禁用绝对布局。

3.使用LinearLayout的weight属性

假如我们的宽度不是0dp(wrap_content和0dp的效果相同),则是match_parent呢?

android:layout_weight的真实含义是:如果View设置了该属性并且有效,那么该 View的宽度等于原有宽度(android:layout_width)加上剩余空间的占比。

从这个角度我们来解释一下上面的现象。在上面的代码中,我们设置每个Button的宽度都是match_parent,假设屏幕宽度为L,那么每个Button的宽度也应该都为L,剩余宽度就等于L-(L+L)= -L。

Button1的weight=1,剩余宽度占比为1/(1+2)= 1/3,所以最终宽度为L+1/3*(-L)=2/3L,Button2的计算类似,最终宽度为L+2/3(-L)=1/3L。

4.使用.9图片

6.3、今日头条屏幕适配

点击下方链接免费获取Android进阶资料:

https://shimo.im/docs/tXXKHgd...


Air723
4 声望0 粉丝