android autosize原理,Android屏幕适配头条:autosize的原理

android autosize原理,Android屏幕适配头条:autosize的原理主要是固定一个UI尺寸,比如宽度360,然后为了各个density显示的宽度都是360dp,则通过:px=dp*density,density=screenWidthPx/360;记录下文章https://blankj.com/2018/07/30/easy-adapt-screen/我们知道px=dp*density,我们要适配的话需要确保dp不变去修改densit…

大家好,又见面了,我是你们的朋友全栈君。

主要是固定一个UI尺寸,比如宽度360,然后为了各个density显示的宽度都是360dp,则通过 :px=dp * density, density =screenWidthPx / 360;

记录下文章

https://blankj.com/2018/07/30/easy-adapt-screen/

我们知道 px = dp * density,我们要适配的话需要确保 dp 不变去修改 density,而安卓默认 density = dpi / 160,其意思就是 1dp 有多少 px,也就是像素密度,我们开发是按照一份设计稿来做的,那么有没有什么办法来让 density 和设计稿尺寸做联系呢?假设我们设计稿是宽度是 1080px,资源放在 xxhdpi,那么我们宽度转换为 dp 就是 1080 / 3 = 360dp,要在不同设备上宽度都表现为 360dp,那么就需要修改其 density = screenWidthPx / 360,这样就满足了上述条件,而和 density 相关的还有 densityDpi、scaledDensity,我们根据 density 等比修改 densityDpi、scaledDensity 即可。

由于 API 26 及以上的 Activity#getResources()#getDisplayMetrics() 和 Application#getResources()#getDisplayMetrics() 是不同的引用,所以在 API 26 及以上适配是没有影响的,但在 API 26 以下 Activity#getResources()#getDisplayMetrics() 和 Application#getResources()#getDisplayMetrics() 是相同的引用,导致适配有问题,这里要感谢 @MirkoWu 提出的问题,后面会有解决之法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134988.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • excel中html批量转化为pdf文件,如何将大量的Excel转换成PDF?

    excel中html批量转化为pdf文件,如何将大量的Excel转换成PDF?大家都知道Excel表,最怕别人修改了,尤其是数据。一旦修改,可能就会有麻烦。那如何是好呢?有一个最简单的办法就是把Excel转换成PDF文件,这样别人只能阅读不能编辑,就不用担心被修改了,哈哈~下面就随小编一起来看下Excel转PDF的办法有哪些吧?方法一:需要一份份文件手动处理。1、创建PDF文件a、打开需转成PDF的文件,譬如本例的表格:成本数据b、单击工具栏上的“文件”标签,点击“保存并发…

    2022年5月18日
    53
  • frameset的使用

    frameset的使用才代码可以是frameset居中

    2022年10月31日
    0
  • update Google play services_apfs for windows

    update Google play services_apfs for windows原文首发:http://mobileside.cn/post/2010/02/10/GoogleBuzzForWindowsPhone.aspx  昨天晚上,google推出了他们的Buzz产品。什么是Buzz,简单点说,他就是把微博服务和他的地图以及邮件结合到了一起,其实这是一个很典型的LBS。下载地址为:http://www.google.com/gmm/Google

    2022年8月31日
    0
  • .gitkeep常用写法

    .gitkeep常用写法

    2021年10月20日
    52
  • python常用库安装

    python常用库安装python常用库安装

    2022年4月24日
    154
  • linux的gcc使用方法_linux怎么用gcc编译

    linux的gcc使用方法_linux怎么用gcc编译01.命令概述gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。gcc是GNU编译器套件(GNUCompilerCollection),它包括了C、C++、Objective-C、Fortran、Java、Ada、Go语言和D语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。GCC的初衷是…

    2022年10月13日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号