外观
如何理解跨屏后的尺寸、坐标与配置变化?
标准回答
不同屏幕可能具有不同密度、分辨率、旋转和可用区域。dp 适合表达布局意图,px 对应实际栅格;手势采样点、窗口位置、快照裁剪和目标动画路径必须说明坐标系。简单按宽度比例缩放,可能漏掉 Insets、旋转和内容留白。
推荐将转换拆成几步:源局部坐标到源显示坐标,归一化或业务锚点转换,再映射到目标有效内容区。保存矩阵及其逆变换,用于命中判断和返回手势。布局在目标配置稳定后重新计算,不复用旧屏的缓存尺寸。
Activity 是否重建由配置变化与组件声明等因素决定。声明自行处理配置变化意味着应用承担更新资源和布局的责任,不是让系统差异消失。快照、字体、触摸区域和无障碍焦点都要回归。
追问与回答
点击位置偏移应如何排查
同时记录原始事件坐标、窗口位置、Insets、变换矩阵与命中矩形,使用角点和中心点验证转换,避免仅凭视觉对齐。
为什么跨屏后文字尺寸异常
可能复用了错误 Display 的资源或缓存了旧 density / scaledDensity;需同时检查字体缩放和目标配置。
易混淆点
- 只校正画面,不校正输入与可访问区域。
参考资料
内容来源
- Android 与 AI 工程 Wiki · 原条目
q112