解决AndroidAutoLayout无法适配18:9 全面屏

31 篇文章 0 订阅
30 篇文章 0 订阅

随着人们对大屏手机需求的变化,Android全面屏 越来越多


AutoLayout这个以往用于简单适配屏幕像素的框架存在着严重变形的问题

鸿洋的AutoLayout项目地址 已经停止更新了

https://github.com/hongyangAndroid/AndroidAutoLayout

以下为宽高比缩略图

变形效果 左为正常需求  右边为全面屏


解决方案 修改AutoLayoutConfig init方法

将高度只按宽度同比例进行适配 (AutoLayout里面Meta配置为1080*1920 16:9 全面屏为18:9)

源码:

public void init(Context context) {
        getMetaData(context);
        int[] screenSize = ScreenUtils.getScreenSize(context, useDeviceSize);
        mScreenWidth = screenSize[0];
        mScreenHeight = screenSize[1];
        }


    }
修改为以下代码
public void init(Context context) {
        getMetaData(context);

        int[] screenSize = ScreenUtils.getScreenSize(context, useDeviceSize);
        mScreenWidth = screenSize[0];
        //取宽度作为基准
        float mDesignRate = 1.0f * mDesignHeight / mDesignWidth;
        float screenRate = 1.0f * screenSize[1] / screenSize[0];
        if (screenRate > mDesignRate) {
            mScreenHeight = (int) (screenSize[1] * (mDesignRate / screenRate));
        } else {
            mScreenHeight = screenSize[1];
        }


    }

这个修改方案并不是非常好,比如这是一个长屏幕   原来的autolayout布局是刚好到底部   蓝色我代码修改后的是适配  刚好剩下白色区域 但是变形的问题解决了 如果有更好的方案可以邮箱我

275518834@qq.com

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值