1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【Android】最简单的屏幕适配方案->AutoSize(持续更新)

【Android】最简单的屏幕适配方案->AutoSize(持续更新)

时间:2018-11-20 07:50:20

相关推荐

【Android】最简单的屏幕适配方案->AutoSize(持续更新)

介绍

AutoSize是基于今日头条的适配方案,该方案很大程度上解决了今日头条适配方案的两个缺点,可以对activity,fragment进行取消适配,避免我们限定符适配写布局或dimen的大量工作,是目前最简单的工业适配框架.

Github地址:AndroidAutoSize

How To Use

引用

implementation 'me.jessyan:autosize:1.2.1'

在 AndroidManifest 中填写全局设计图尺寸,如下图.

<application...><meta-dataandroid:name="design_width_in_dp"android:value="1280"/><meta-dataandroid:name="design_height_in_dp"android:value="800"/></application>

当设计图上的尺寸和以上尺寸一致时,到此配置已经全部完成,直接按UI分辨率在使用主单位时,design_width_in_dp 和 design_height_in_dp 的单位必须是 dp计算公式,将px尺寸转换为dp尺寸,如果实在找不到设备的 DPI 那就直接将 px 尺寸除以3或者2,比如我的尺寸就是1920x1200

dp = px / (DPI / 160)如果使用副单位,则可以直接填写像素尺寸,不需要再将像素转化为 dp

问题: 横屏失效的问题

qus

当使用项目中使用了AutoSize进行页面适配时, 有时候需求会有横竖屏幕切换的需求,这是时候就有问题出现了。

我们一般都是在Manifes或者代码中配置的宽高基准, 然而当手机旋转的时候就不适用了, 因为竖屏和横屏的宽高恰好相反, 这就导致页面适配出现了问题slove

所以我们需要监听屏幕适配器, 根据屏幕的宽高来设置适配基准, 一般是在application中进行监听设置

//autoSize kotlinAutoSizeConfig.getInstance().onAdaptListener = object : onAdaptListener {override fun onAdaptBefore(target: Any, activity: Activity) {AutoSizeConfig.getInstance().screenWidth = ScreenUtils.getScreenSize(activity)[0]AutoSizeConfig.getInstance().screenHeight = ScreenUtils.getScreenSize(activity)[1]if (activity.resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) {//根据屏幕方向,设置适配基准AutoSizeConfig.getInstance().designWidthInDp = 1280//设置横屏基准} else {AutoSizeConfig.getInstance().designWidthInDp = 800//设置竖屏基准}}override fun onAdaptAfter(target: Any?, activity: Activity?) {}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。