前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android 屏幕适配】屏幕适配通用解决方案 ② ( 自定义组件解决方案 | 需要解决的问题 : 设计稿坐标数据转为屏幕真实坐标数据 | 实现步骤 )

【Android 屏幕适配】屏幕适配通用解决方案 ② ( 自定义组件解决方案 | 需要解决的问题 : 设计稿坐标数据转为屏幕真实坐标数据 | 实现步骤 )

作者头像
韩曙亮
发布2023-03-30 16:13:48
4050
发布2023-03-30 16:13:48
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

参考文档 :

一、自定义组件解决方案


使用的 dimens.xml 配置的方式 实现 屏幕适配 , 在 开发时 就 事先将对应屏幕分辨率的值换算好 并 配置到 dimens.xml 文件 中 , 在程序运行时只需要直接调用即可 , 不需要消耗资源进行额外的计算 ;

自定义组件解决方案 实现 屏幕适配 , 是在 应用运行过程中 , 自定义组件的 onMeasure 测量方法中 , 按照组件的比例进行缩放 ;

自定义组件 在 onMeasure 方法中 , 只需要将 该 自定义 ViewGroup 组件 下的 子组件 逐个遍历 , 根据当前 设备的屏幕像素属性 修改子组件的 宽高 和 位置 的像素数据 ;

二、需要解决的问题 : 设计稿坐标数据转为屏幕真实坐标数据


美工给出的切图 , 以及展示图 , 仅标注了设计稿上的坐标数据 , 这里就需要将 设计稿坐标数据 转为 手机上的真实坐标数据 ;

如 :

设计稿是 720 x 1280 , 宽度 720 像素 , 高度 1280 像素 ;

720 x 1280 像素的设计稿对应的素材存放在 drawable-xhdpi 或者 mmap-xhdpi 目录下 ;

设计稿中 , 状态栏高度 48 像素 , 则 垂直方向上高度的有效高度是 1232 像素 ;

设计稿除掉状态栏之后 , 宽高为 720 x 1232 , 对应 手机屏幕中除 状态栏之外的 布局 ;

三、实现步骤


如果要实现将 宽高为 720 x 1232 的设计稿 , 对应 手机屏幕中除 状态栏之外的 布局 , 需要完成如下操作 :

首先 , 要 获取到实际的设备屏幕数据 , 如 手机屏幕实际宽高 , 屏幕像素密度 DPI 等数据 ;

然后 , 计算实际设备的宽高 , 扣掉状态栏的高度 , 不同手机设备状态栏高度不同 , 然后再进行后续计算 ;

再后 , 给出一个 设计稿 与 屏幕实际有效像素值 的 换算比例 ;

最后 , 根据给出的比例 , 在 自定义组件的 onMeasure 方法 中 , 进 行动态换算 , 计算出在当前设备中每个组件的 实际坐标数据 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、自定义组件解决方案
  • 二、需要解决的问题 : 设计稿坐标数据转为屏幕真实坐标数据
  • 三、实现步骤
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档