Android适配

相关概念

屏幕尺寸

含义:手机对角线的物理尺寸
单位:英寸(inch)-1英寸=2.54cm,android常见的尺寸有5寸,5.5寸,6寸

屏幕分辨率

含义:手机在横向,纵向上的像素点数总和,一般描述成屏幕的"宽x高"=AxB,表示屏幕在横向方向(宽度)上有A个像素点,在纵向方向上有B个像素点,例如1080x1920表示宽有1080个像素点,高有1920个像素点
单位:px(pixel),1px=1像素点;ui设计图会以px为统一的计量单位
android常见的分辨率:320x480,480x800,720x1280,1080x1920

屏幕像素密度

含义:每英寸的像素点数
单位:dpi


Android适配_第1张图片
image.png

屏幕尺寸,分辨率,像素密度三者关系

密度(单位/dpi)=√(宽²+高²)/屏幕大小-->密度即每英寸的像素点

密度无关像素

含义:density-independent pixel,叫dp或dip,与终端上的实际物理像素点无关
单位:dp,可以保证在不同屏幕像素密度的设备上显示相同的效果
android开发时用dp而不是px单位设置图片大小,这是android特有的单位

  • dp与px的转换
    在android中规定以160dpi为基准:1dp = 1px


    Android适配_第2张图片
    image.png

独立比例像素

含义:scale-independent pixel,叫sp或sip
单位:sp android开发时用此单位设置文字大小,可根据字体大小首选项进行缩放,推荐使用偶数,因为使用奇数和小数容易造成精度的丢失问题,小于12sp的字体会太小

屏幕适配问题的本质

  • 使得布局,布局组件,图片资源,用户界面流程匹配不同的屏幕尺寸
  • 使得图片资源匹配不同的屏幕密度

屏幕密度适配解决方案

  • 布局控件匹配
    1. 使用密度无关像素:dp,sp
  • 屏幕尺寸和屏幕分辨率适配:百分比适配方法
  1. 以某一个分辨率为基准,生成所有分辨率对应像素数列表(实际可用的分辨率进行适配)
    • 下载鸿洋提供的工具 autolayout.jar 此工具默认基准是480*320,通过在cmd下敲
      java -jar xx.jar 基准宽 基准高 额外支持尺寸1的宽,额外支持尺寸1的高_额外支持尺寸2的宽,额外支持尺寸2的高
  2. 将生成的像素数列表(lay_x.xml和lay_y.xml)存放在res目录下对应的values文件下,必须在默认的values里面也创建对应的默认lay_x.xml和lay_y.xml,否则会报错,不能进行适配,此values下对应的单位应改为dp,为不同于其他的px
  3. 根据设计图的尺寸,找到对应像素数的单位,然后设置给控件

图片资源匹配

  • 使得图片在不同屏幕密度上显示相同的像素效果
    做法:提供备用位图(符合屏幕尺寸的图片资源)由于android可在各种屏幕密度的设备上运行,因此需要图片始终满足各类密度的要求,因为图片太多会造成apk变大,因为有些设计师不会专门为android切图,而iphone的一倍图(1334750)的屏幕密度是326,接近android的(720*1280)屏幕密度320,所以我们可以用一倍图放到xhdpi文件夹里面

参考链接

https://www.jianshu.com/p/ec5a1a30694b
http://dditblog.com/itshare_843.html 有下载jar包的地址
https://blog.csdn.net/Arise_Yang/article/details/105954296 获取实际可用的分辨率的方法

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