android 项目中的屏幕适配方案

1.## smallestWidth 官方支持的限定符方案,smallestWidth插件 生成对应的屏幕下的dp 需要设置基础dp 与设计图对齐

2.手撸一套适配方案,这种就是接手的老项目,一点小修改,直接用smallestWidth 会把之前老代码搞出问题。只用于新代码 xml那种适配就不合适了

js 复制代码
/**
* 计算原理
* 比值计算 设计图比值 = 设计图宽度 / 设计图密度
* 实际px值/实际一屏的宽度px值 = 设计图标记宽度比值/设计图一屏宽度比值
* 然后根据实际px值 换算出实际 sp dp
* 设计图密度计算
* //设计图的ppi 英寸是基准计算用的与160 一样
* epicPpi = 开根号(宽平方+高平方)/ 英寸 = 每寸像素个数
* //设计图的密度
* epicDensity = epicPpi / 160
* 比值计算
* //设计图一屏宽度比值
* epicBaseWidth = 设计图的宽度 / epicDensity
* //设计图标记宽度比值
* epic = 设计图上控件的 px / epicDensity
* //实际px值
* (epic * context.resources.displayMetrics.widthPixels / epicBaseWidth).toFloat()
*/

宽度百分比,高度自适应

相关推荐
wxson728212 小时前
【Android视频监控系统技术总结】
android·音视频
hunterandroid14 小时前
[Android 从零到一] LiveData 粘性事件与单次消费:从重复触发到可靠事件总线
android
hunterandroid14 小时前
[Android 从零到一] Android 事件分发机制:从 ACTION_DOWN 到 View 事件消费链路
android
阿巴斯甜14 小时前
adb‑shell 全套命令实操总结
android
奔跑的架构师15 小时前
[A-49]ARMv9/v8-PSCI接口规范与工作流程简介
android·linux·arm开发·arm
AFinalStone16 小时前
Android 7系统国际化(七)Resources 与 AssetManager 源码剖析
android·国际化·local
Android-Flutter16 小时前
Android 内存泄漏详解
android·kotlin
catchadmin16 小时前
Fiber 与 PHP 8.6 Polling API 异步初探
android·开发语言·php
Android-Flutter17 小时前
android Handler , Looper , Message , MessageQueue 详解
android·kotlin