Android 手机屏幕适配方式和原理

其适配原理主要是根据dp/sp与px的转换,而dp/sp与px的转换又与DisplayMetrics的density相关,所以可以通过改变DisplayMetrics的density,scaledDensity和densityDpi的值来适配不同分辨率机型。

在开始分析之前,我们需要了解一些概念,如:

DisplayMetrics:是Android屏幕显示的信息描述,如尺寸size,密度desity,字体缩放值font scaling
Resources:是应用的资源管理类(High level api),可以调用应用中的color,string,drawable等资源
AssetManager:是可以直接访问应用的raw资源(Low level api)
BitmapFactory: Bitmap工厂类,可以根据多种来源创建Bitmap。
在说Android适配原理之前,我们先来了解一些基础概念。

一、基础概念
1. dip/dp

是Density independent pixel的缩写,指的是抽象意义上的像素。跟设备的屏幕密度有关系。它是Android里的一个单位,dip和dp是一样的。

2. sp

scale-independent pixel,安卓开发用的字体大小单位。

3.px

想像把屏幕放大再放大,对!看到的那一个个小点或者小方块就是像素了。

4.dpi

是dot per inch的缩写,就是每英寸的像素数,也叫做屏幕密度。这个值越大,屏幕就越清晰。iPhone5S的dpi是326; Samsung Note3 的dpi是386

5.分辨率

是指屏幕上垂直方向和水平方向上的像素个数。比如iPhone5S的分辨率是1136*640;Samsung Note3的分辨率是1920*1080;

6.屏幕尺寸(screen size)

就是我们平常讲的手机屏幕大小,是屏幕的对角线长度,一般讲的大小单位都是英寸。在api版本13之前(3.2),屏幕被分成四大组:small,normal,large,xlarge。但是在13往后,可以支持更加精确的屏幕区分:sw600dp,sw720dp,w600dp等。
 

相关推荐

  1. Android 手机屏幕方式原理

    2023-12-05 15:46:06       58 阅读
  2. Android】App 屏幕方案

    2023-12-05 15:46:06       38 阅读
  3. android 手机平板如何

    2023-12-05 15:46:06       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-05 15:46:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-05 15:46:06       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-05 15:46:06       82 阅读
  4. Python语言-面向对象

    2023-12-05 15:46:06       91 阅读

热门阅读

  1. 基于遗传算法求解带容量的VRP问题的MATLAB源码

    2023-12-05 15:46:06       61 阅读
  2. layui下拉框jQuery动态修改选中并展示

    2023-12-05 15:46:06       68 阅读
  3. 深度学习(二):pytorch基础知识

    2023-12-05 15:46:06       39 阅读
  4. kafka的详细安装部署

    2023-12-05 15:46:06       43 阅读
  5. PTA 7-229 sdut-C语言实验- 排序

    2023-12-05 15:46:06       48 阅读
  6. boost库---circular_buffer用法

    2023-12-05 15:46:06       63 阅读
  7. CentOS部署python Flask项目

    2023-12-05 15:46:06       61 阅读