安卓Autolayout不能适配18:9等全面屏的解决办法

自己项目一直都用的鸿洋大神的Autolayout来做的屏幕适配,期间一直用的挺好,除了个别Viewgroup的自定义控件要重写测量方法适配,但是,最近有人反馈遇到了问题,那就是现在全面屏手机满天飞(18:9的,三星的18.5:9,oppo、vivo的19:9),很无奈,当初鸿洋的框架只是支持16:9的屏幕,而且已经不维护了,没办法,只能自己想办法了,看了下Autolayout的源码,自己想了想,框架内部是拿到屏幕的宽高,设计图的宽高,来做的适配,既然是这样,我为什么不在获取屏幕硬件宽高的时候做一个判断呢?如果屏幕的比例是大于16:9那我就认定是18:9的或者更加长的全面屏,是不是可以解决呢?找到Autolayout里面的AutolayoutConfig方法 ,在里面的init初始化方法获取屏幕宽高的时候做一个判断

大致就是这样写的,就是对屏幕的比例做一个判断,动态的告诉内存还是按照16:9来做适配,目前已在小米全面屏手机测试,华为全面屏,三星全面屏都经过测试,能正常适配,不存在拉升效果,可能我的处理方法不是很好,如果有大牛有好的改进的方法,希望不吝赐教。

你可能感兴趣的:(Autolayout适配)