Android适配全攻略(学习笔记总结)

Posted 若兰明月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android适配全攻略(学习笔记总结)相关的知识,希望对你有一定的参考价值。

一、为什么要进行屏幕适配

某厂商统计如下数据

  • 2012年,支持android的设备共有3997种
  • 2013年,支持Android的设备共有11868种
  • 2014年,支持Android的设备共有18796种
  • 2015年,支持Android的设备的共有24093种
  • http://www.sfw.cn/xinwen/471726.html(2015年统计,里面包含android设备,厂家,碎片化)

二、屏幕适配对象

我们到底应该对哪些屏幕进行适配

  • 首先来看下最新的Android设备分辨率(2016年)

进行适配的还是以上的主流的几个分辨率

三、重要概念

(1)、什么是屏幕尺寸、屏幕分辨率、屏幕像素密度

屏幕尺寸
  • 屏幕尺寸指屏幕的对角线的长度
  • 单位是英寸,1英寸=2.54厘米
屏幕分辨率
  • 屏幕分辨率是指横纵向撒花姑娘的像素点数
  • 单位是px ,1px=1个像素点
  • 一般以纵像素*横向像素,如1920*1080
屏幕像素密度
  • 屏幕像素密度是指每英寸上的像素点数
  • 单位是dpi,即“dot per inch”的缩写
  • 屏幕像素密度与屏幕尺寸和屏幕分辨率有关
  • 如Nexus 5
    • 屏幕4.95
    • 1920*1080
    • 445dpi 1920^2+1080^2 进行开方 然后除以对角线长度4.95 等于445

(2)、什么是dp,dip,dpi,sp、px ?之间的关系是什么?

px
  • 构成图像的最小单位
dp 、dip
  • Density Independent Pixels的缩写,即密度无关像素
  • 以160dpi为基准,1dpi = 1px
sp
  • 即Scale-Independent Pixels
  • 可以根据文字大小首选项进行缩放
  • 绝大部分用于文字的大小推荐12sp、14sp、18sp、22sp

(3)、什么是mdpi、hdpi、xdpi、xxdpi、xxxdpi?如何计算和区分?

在新创建项目的时候,会自动创建不同的drawable或者mipmap文件夹(在不同像素密度上提供不同的图片)
或者不同的value下面(在不同像素密度提供不同的值)dimens.xml(这个放在不同的values下面)

名称像素密度范围
mdpi120dpi-160dpi
hdpi160dpi-240dpi
xhdpi240dpi-320dpi
xxhdpi320dpi-480dpi
xxxhdpi480dpi-640dpi

四、解决方案

支持各种屏幕尺寸

  • 使用wrap_content、match_parent、weight