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是一样的。

  1. 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等。

相关推荐
lanboAI13 小时前
基于yolov5的番茄成熟度检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】
python·yolo·智能手机
qq_308957471 天前
adb 如何通过wifi连接手机
adb·智能手机·app自动化测试
AirDroid_cn1 天前
三星手机投屏到MacBook的方法,多台手机同屏展示
macos·智能手机·投屏·手机投屏·三星
keh08141 天前
解锁高效直播新体验:第三代 AI 手机自动直播工具,开启直播高效运作新时代!
人工智能·智能手机
众乐认证2 天前
Android Auto 不再用于旧手机
android·google·智能手机·android auto
硬汉嵌入式3 天前
开源三代示波器的高速波形刷新方案开源,支持VNC远程桌面,手机,Pad,电脑均可访问(2024-11-11)
智能手机·电脑·示波器
hgdlip4 天前
手机上用什么方法可以切换ip
网络协议·tcp/ip·智能手机
hgdlip5 天前
手机ip地址怎么切换外省
网络·tcp/ip·智能手机
shujuwa666 天前
安卓/华为手机恢复出厂设置后如何恢复照片
android·windows·智能手机·电脑·开源软件
有过~6 天前
DevCheck Pro手机硬件检测工具v5.33
智能手机