android修改屏幕长宽比例,Android屏幕适配之修改density

本文介绍了如何在Android中修改屏幕的density以实现与设计图一致的宽高比适配,主要关注如何保持一个维度与设计图相同。通过计算新的density并更新DisplayMetrics,实现了dp和sp单位的支持,降低了适配成本。文章提供了在Activity#onCreate中调用的代码示例,以360dp宽度设计图为基础进行宽维度适配。
摘要由CSDN通过智能技术生成

标准:1920px * 1080 5英寸 480 3

三星s10-22801080 6.1英寸 414 2.58

MI mix2-19201080 5.99 368 2.29

android中的dp在渲染前会将dp转为px,计算公式:

px = density * dp;

density = dpi / 160;

px = dp * (dpi / 160);

497b240fade6

dpi计算

大致需求如下:

支持以宽或者高一个维度去适配,保持该维度上和设计图一致;

支持dp和sp单位,控制迁移成本到最小。

density 是 DisplayMetrics 中的成员变量

DisplayMetrics#density 就是上述的density

DisplayMetrics#densityDpi 就是上述的dpi

DisplayMetrics#scaledDensity 字体的缩放因子,正常情况下和density相等,但是调节系统字体大小后会改变这个值

所有的dp和px的转换都是通过 DisplayMetrics 中相关的值来计算的

以1920px * 1080px来设计,以density为3来标注,也就是屏幕其实是640dp * 360dp

假设设计图宽度是360dp,以宽维度来适配。

那么适配后的 density = 设备真实宽(单位px) / 360,接下来只需要把我们计算好的 density 在系统中修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值