适配框架 AndroidAutoSize 使用过程中的一点想法及与 tinker 冲突问题

本文介绍了在使用 AndroidAutoSize 适配框架时遇到的问题,包括不同分辨率设备的适配策略需求及与热修复库 Tinker 的冲突。针对问题,文章提出动态初始化适配维度的解决方案,并详细说明如何避免反射接入 Tinker 导致的适配失效。然而,采用非反射方式接入 Tinker 后,项目在加载补丁时出现异常,作者正在寻求解决此问题的方法。
摘要由CSDN通过智能技术生成

使用中遇到的问题

我们知道 AutoSize 是一个百分比适配框架,只能保证一个维度进行适配,而且这个维度是在我们初始化的时候就指定的。

问题来了,假设我们的设计稿是1920x1080,并且我们指定以宽度方向进行适配。

手机分辨率为1920x1080:

可以完美适配。

手机分辨率为1812x1080(举个栗子而已):

宽度方向完美适配,高度方向会被压缩(竖直方向可以滚动的页面除外)。

这个时候最好是能够按照高度进行适配,这样一来,高度方向可以填充,宽度方向也不至于应为超出屏幕而被压缩。

手机分辨率为2340x1080:

宽度方向完美适配,高度方向有可能留白,这个我们可以通过 match_parent 或者 layout_weight 来解决。但是如果我们一开始指定是高度方向进行适配,在该分辨率下宽度方向就会被压缩。

结论:

根据不同的设备动态初始化我们的适配维度。

解决办法

private fun initAdapt() {
    val config = AutoSizeConfig.getInstance()
        .setLog(true)
        .setUseDeviceSize(true)
    val screenWidth = config.screenWidth
    val screenHeight = config.screenHeight
    val designWidthInDp = config.designWidthInDp
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值