当前位置: 首页 > article >正文

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


http://www.kler.cn/a/154196.html

相关文章:

  • jmeter常用配置元件介绍总结之配置元件
  • nuget 管理全局包、缓存和临时文件夹
  • .NET 9.0 中 System.Text.Json 的全面使用指南
  • Ubuntu 的 ROS 操作系统 turtlebot3 导航仿真
  • 【项目开发】URL中井号(#)的技术细节
  • 如何让手机ip变成动态
  • (一)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • 【UGUI】Unity为下拉菜单添加选项(DropDown)
  • SQL Server对象类型(7)——4.7.触发器(Trigger)
  • 自定义类型-结构体,联合体和枚举-C语言
  • matlab 无迹卡尔曼滤波
  • 力扣129. 求根节点到叶节点数字之和
  • Git自动化利器:使用Node.js脚本定制化提交消息处理
  • 电大搜题微信公众号详解,助力学习者轻松考试
  • web:very_easy_sql(sql、ssrf、gopher协议sql注入)
  • zookeeper集群+kaafka集群
  • 二叉树遍历及应用
  • 大厂面试整理
  • Linux操作系统 2.Linux基础命令
  • Python字典类型
  • MyBatis的创建,简单易懂的一篇blog
  • LeetCode [中等]98. 验证二叉搜索树
  • uniapp-从后台返回的一串地址信息上,提取省市区进行赋值
  • 数据结构--堆排序
  • 【开源】基于JAVA语言的考研专业课程管理系统
  • YOLOv8界面-目标检测+语义分割+追踪+姿态识别(姿态估计)+界面DeepSort/ByteTrack-PyQt-GUI