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()
*/

宽度百分比,高度自适应

相关推荐
黄林晴32 分钟前
Android 17 再曝猛料:通知栏和快捷设置终于分家了,这操作等了十年
android
有位神秘人1 小时前
Android获取设备中本地音频
android·音视频
JMchen1231 小时前
Android网络安全实战:从HTTPS到双向认证
android·经验分享·网络协议·安全·web安全·https·kotlin
CS创新实验室1 小时前
Pandas 3 的新功能
android·ide·pandas
ujainu1 小时前
护眼又美观:Flutter + OpenHarmony 鸿蒙记事本一键切换夜间模式(四)
android·flutter·harmonyos
三少爷的鞋1 小时前
为什么我不在 Android ViewModel 中直接处理异常?
android
草莓熊Lotso2 小时前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
恋猫de小郭3 小时前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
工程师老罗9 小时前
如何在Android工程中配置NDK版本
android
Libraeking12 小时前
破壁行动:在旧项目中丝滑嵌入 Compose(混合开发实战)
android·经验分享·android jetpack