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.mzph.cn/news/189730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

股票要怎么买入卖出?

股票账户终于开好了!恭喜你马上就可以开启刺激的炒股之旅了!不过第一次买股票的你是不是还不知道怎么个买法呢?别担心~贴心的汇小鲸带着教程来了,咱们一起看看吧! 首先一点,大家得知道:开好户还…

Python---文件操作综合案例

需求:批量修改文件名,既可添加指定字符串,又能删除指定字符串。 步骤: ① 设置添加删除字符串的的标识 ② 获取指定目录的所有文件 ③ 将原有文件名添加/删除指定字符串,构造新名字 ④ os.rename()重命名 代码&am…

异步重试 当你需要不停调用第三方接口,直到返回成功或失败时,可以使用类似的异步重试的机制。l

当你需要不停调用第三方接口,直到返回成功或失败时,可以使用类似的异步重试的机制。以下是一个整合了这个要求的简单示例代码: import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; import java.…

JavaFramework JDK Version Test

测试JDK8 JDK17编译包 当前环境JDK8 CASE 1: /*** * author ZengWenFeng* email 117791303QQ.com* mobile 13805029595* date 2023-08-07*/ package zwf;import a.T; import ce.pub.util.GUID;/*** 测试高版本JDK编译JAR,低版本错误** author ZengWenF…

震坤行:数字驱动食品农副行业采购的新兴趋势与实践

震坤行:数字驱动食品农副行业采购的新兴趋势与实践 近年来消费者对于营养价值和健康的追求日益凸显,促使各类有机食品、低糖低脂食品、素食等健康食品受到热烈追捧。同时,以往单一的产品也被各家企业“卷”出了个性化,光是卖水&a…

技术经济与企业管理 救命稻草

明天要考试了,今天开始预习! 此课也叫【化工技术经济】、【工程经济学】 目录 第二章 企业战略分析市场预测方法一元线性回归方法简单移动平均法 第三章 资金的时间价值(考)资金时间价值的衡量利率现金流量图资金等值计算&#x…

四、设置主机名和域名映射

目录 1、配置每台虚拟机主机名 2、配置每台虚拟机域名映射 1、配置每台虚拟机主机名

windows ssh时出现Bad local forwarding specification的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

掌握HarmonyOS框架的ArkTs如何管理和共享状态数据

ARKTS(Ark TypeScript)是HarmonyOS应用框架的一部分,提供了一种灵活而强大的状态管理机制。在ARKTS中,AppStorage和LocalStorage是两个关键的概念,它们分别用于应用级和页面级的状态共享。通过深入了解这两个特性&…

2023年建筑轮廓高度数据技术服务

在之前的文章【数据分享】全国62个城市建筑轮廓数据带层数(2018年)和【数据分享】全国77个城市建筑轮廓数据带高度(2019年)里我们分别分享了2018年和2019年2020年2021年2022年的建筑轮廓数据,数据年份也有些老了&#…

计算机网络——数据链路层-封装成帧(帧定界、透明传输-字节填充,比特填充、MTU)

目录 介绍 帧定界 PPP帧 以太网帧 透明传输 字节填充(字符填充) 比特填充 比特填充习题 MTU 介绍 所谓封装成帧,就是指数据链路层给上层交付下来的协议数据单元添加帧头和帧尾,使之成为帧。 例如下图所示: …

蓝桥杯每日一题2023.12.1

题目描述 蓝桥杯大赛历届真题 - C 语言 B 组 - 蓝桥云课 (lanqiao.cn) 题目分析 对于此题目而言思路较为重要&#xff0c;实际可以转化为求两个数字对应的操作&#xff0c;输出最前面的数字即可 #include<bits/stdc.h> using namespace std; int main() {for(int i 1…

图解java.util.concurrent并发包源码系列——深入理解定时任务线程池ScheduledThreadPoolExecutor

深入理解定时任务线程池ScheduledThreadPoolExecutor ScheduledThreadPoolExecutor作用与用法ScheduledThreadPoolExecutor内部执行流程DelayedWorkQueueScheduledFutureTask源码分析任务提交ScheduledFutureTask的属性和方法delayedExecute(t) 任务执行ScheduledFutureTask.su…

基于机器深度学习的交通标志目标识别

在线工具推荐&#xff1a; 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 智能交通系统&#xff08;ITS&#xff09;&#xff0c;包括无人驾驶车辆&#xff0c;尽管在道路…

安装两个WIN10/WIN11系统到两个盘中,第二个系统依赖原系统盘引导的问题

前段时间折腾装一个双系统&#xff0c;主要两个方面考虑&#xff1a; 1. 原来的系统又许多软件&#xff0c;想着先保留&#xff1b; 2. 系统想安装到一个固态硬盘中&#xff1b; 在安装的过程中遇到了一些问题&#xff0c;这里记录分享一下。 问题1&#xff0c;运行系统自动安装…

爬虫-BeautifulSoup之XML篇

1. 发送 HTTP 请求获取页面内容 url "https://example.com" response requests.get(url) xml_content response.text2. 创建 Beautiful Soup 对象 soup BeautifulSoup(xml_content, xml)3. 解析 XML 标签 3.1. 标签选择器 # 选择所有的 <element> 标签…

Langchain-Chatchat学习

参考&#xff1a;Langchain-Chatchat 阿里通义千问Qwen 保姆级教程 | 次世代知识管理解决方案 - 知乎 (zhihu.com) 该文档没有安装成功&#xff0c;安装成功的文档 可见&#xff1a;Langchain-Chatchat的安装过程-CSDN博客 中文LLM生态观察 模型 就开源的部分而言&#xf…

Servlet概念视频笔记

学习地址:121-尚硅谷-Servlet-什么是Servlet_哔哩哔哩_bilibili 目录 1.Servlet技术 a.什么是Servlet b.手动实现Servlet程序 c.url地址如何定位到Servlet程序去访问 d.Servlet的生命周期 e.GET 和 POST 请求的分发处理 f.通过继承 HttpServlet 实现 Servlet程序 g.使用…

centos7 安装docker 步骤整理

安装docker步骤&#xff1a; 1、yum update -y 2、yum install -y yum-utils device-mapper-persistent-data lvm2 3、yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 4、yum -y install yum-utils 5、设置阿里的源 yum-config-manag…

如何在财税行业查找批量客户?

现在市场上代记账公司也不算少&#xff0c;做过这行的都知道&#xff0c;最初呢行业竞争不强&#xff0c;都是靠地推、老客户转介绍&#xff0c;或者长期以往的蹲守各个地区的工商注册服务中心&#xff0c;找那些才注册企业的老板或者创业者。但是&#xff0c;随着市场经济的发…