AndroidAutoSize的原理

px = dp * density;

根据百分比适配的话,

如果设计稿给的是1080x1920,那么宽就为360dp,像素为1080px,density为3,占满100%

如果是在720x1280的话,360dp * density = 720,所以这个density为2,将density修改为2就可以了

如果是在1080x1920的设计图中,150px,也就是50dp,占比 150/1080

那么在720x1280中,50*mDensity/720 = 150/1080,所以mDensity = 2,根据标准的图,动态修改mDensity,百分比适配

DisplayMetrics displayMetrics = getResources().getDisplayMetrics();

displayMetrics参数如下:

widthPixels:屏幕宽度

heightPixels:屏幕高度

densityDpi:屏幕密度,每英寸的像素数

density:密度比值,和densityDpi相关,其实就是densityDpi/160得出来的值(160密度就是谷歌定的一个密度标准),不同手机dp换算px就是通过该值。

scaledDensity:同density,用于文字缩放的计算,也就是sp

xDpi:水平方向的真实密度

yDpi:垂直方向的真实密度

autosize px转dp_Android 屏幕适配以及autoSize的原理.md相关推荐

  1. 今日头条适配方案_今日头条屏幕适配方案AutoSize实践

    实际上这个这个框架在Github上已经做了很多的解释性语言了,我在这里也就不多此一举了,这里我就简单的介绍一下如何使用以及实践了,首先介绍一下Github库: https://github.com/J ...

  2. 摩客怎么设置安卓的dp_Android屏幕适配——使用 dp 实现完美适配

    我们一直知道 Android 可以使用 dp.sp 完成简单的适配,那你真的理解了么?先来看几个问题: dp 是如何进行适配的? dp 和 px 是如何换算的? sp 和 dp 的区别? dp 适配为 ...

  3. 摩客怎么设置安卓的dp_Android屏幕适配之单位DP

    基本概念 名词概念 名称 解释 px 像素点,一个像素点为1px dp 即dip,像素密度 sp 同dp,但是可以根据系统字体偏好缩放 dpi 每英寸的像素数,也叫做屏幕密度 换算关系 根据换算关系: ...

  4. Android性能优化—屏幕适配方案

    为什么要做适配?Android碎片化 Android系统碎片化:基于Google原生系统,小米定制的MIUI.魅族定制的flyme.华为定制的EMUI等等: Android机型屏幕尺寸碎片化:5寸.5 ...

  5. android 屏幕适配框架,Android屏幕适配

    为什么要进行Android屏幕适配 由于Android系统的开放性,任何用户.开发者.OEM厂商.运营商都可以对Android进行定制,于是导致: 1.Android系统碎片化:小米定制的MIUI.魅 ...

  6. 2021年最详细的Android屏幕适配方案汇总

    1 Android屏幕适配的度量单位和相关概念 建议在阅读本文章之前,可以先阅读快乐李同学写的文章<Android屏幕适配的度量单位和相关概念>,这篇文章包含了阅读本文的一些基础知识,推荐 ...

  7. 今日头条适配方案_煮酒论英雄之屏幕适配

    作者:JessYan 地址:https://www.jianshu.com/p/55e0fca23b4f1 前言 这个月在 Android 技术圈中 屏幕适配 这个词曝光率挺高的,为什么这么说呢?因为 ...

  8. android开发根据分辨率设置高度,最详细的Android屏幕适配方案分析

    为什么要屏幕适配 Android开发过程中我们常用的尺寸单位有px.dp,还有一种sp一般是用于字体的大小.但是因为px是像素单位,比方我们通常说的手机分辨例如1920*1080都是px的单位.现在A ...

  9. Android AutoSize屏幕适配中图标及字体放大的问题解决

    现象: 项目接入Android AutoSize屏幕适配框架,项目本身主界面是横屏操作的界面.测试中用户反馈在vivo x27的手机或者其他机型也会出现(没测试出来)横屏后所有的图标及字体都放大. 原 ...

最新文章

  1. CTO丢给我《技术Leader的30条军规》:照着做,做不好滚回去写代码!
  2. cat、tac、more、less、head、tail、cut
  3. wxWidgets:wxFileDialog类用法
  4. 电气控制原理动图22张,超赞!
  5. 增加第三方插件_AE插件排行!!
  6. Java ObjectOutputStream writeFloat()方法与示例
  7. python socket.error: [Errno 24] Too many open files
  8. scala读取mysql文件_9. Scala操作外部数据 文件读取,xml,Excel,MySQL
  9. 黄聪:HBuilder左侧项目管理器如何不与标签页一起自动切换
  10. HTML DOM 基础
  11. 一个五年Java程序员的从业总结,献给还在迷茫中的你
  12. JavaScript 求和(字符串转换成数组、for循环求和)
  13. UE4 虚幻引擎,HDRI光照
  14. 西电Pintos操作系统课程设计 实验四
  15. 小丸工具箱压制字幕注意
  16. 悉尼大学计算机相关硕士,悉尼大学计算机硕士专业介绍
  17. uvm transaction
  18. 【Python】详解pandas的isin索引和~反向索引
  19. 利用gpu加速神经网络算法,为什么用gpu 模型训练
  20. 试题 算法训练 盾神与离散老师2

热门文章

  1. CSS学习笔记--浮动元素由于浏览器页面缩小而被挤到下面的解决方法
  2. mysql数据库报Access denied for user 的解决方法
  3. Visual Studio中没有为此解决方案配置选中要生成的项目
  4. URLEncoder.encode转译后“空格”变“加号”的问题的解决方案
  5. jquery submit()不能提交表单的解决方法
  6. 如何使用ui-router中的ui-sref将参数传递给控制器
  7. 为什么Python的“私有”方法实际上不是私有的?
  8. Activiti工作流内建数据库表分析
  9. [C#] Delegate, Multicase delegate, Event
  10. Jenkins构建完成后通过SVN Publisher Plugin上传文件到指定的SVN(教程收集)