ActivityLifecycleCallbacksImpl 可用来代替在 BaseActivity 中加入适配代码的传统方式
ActivityLifecycleCallbacksImpl 这种方案类似于 AOP, 面向接口, 侵入性低, 方便统一管理, 扩展性强, 并且也支持适配三方库的 ActivityActivity 添加进来 (但不局限于三方库), 即可让该 Activity 的适配效果失效Activity 添加进来 (但不局限于三方库), 即可让该 Activity 根据自己提供的适配参数进行适配
默认的全局适配参数不能满足您时可以使用此方法AutoSizeConfig.init(Application, boolean, AutoAdaptStrategy)
和 AutoSizeConfig.setAutoAdaptStrategy(AutoAdaptStrategy) 切换策略DisplayMetrics.density、
DisplayMetrics.scaledDensity、DisplayMetrics.densityDpi 这三个值, 额外增加 DisplayMetrics.xdpi
以支持单位 pt、in、mmDisplayMetrics.density、
DisplayMetrics.scaledDensity、DisplayMetrics.densityDpi 这三个值, 额外增加 DisplayMetrics.xdpi
以支持单位 pt、in、mmActivity 或 Fragment 的自定义参数进行适配Activity 或 Fragment 的自定义参数进行适配Activity 或 Fragment 的自定义适配参数进行适配Activity 或 Fragment 的自定义适配参数进行适配Activity 上, 这个 Activity 下的所有 Fragment、Dialog、
自定义 View 都会达到适配的效果, 如果某个页面不想使用适配请让该 Activity 实现 CancelAdaptActivity 的 ContextThemeWrapper.getResources() 并调用
AutoSizeCompat 的对应方法即可解决问题Activity 也不例外
如果某个页面不想使用适配功能, 请让该页面 Activity 实现此接口
实现此接口表示放弃适配, 所有的适配效果都将失效Activity 实现此接口
实现此接口即可自定义用于适配的一些参数, 从而影响最终的适配效果AutoSizeConfig.init(Application, boolean, AutoAdaptStrategy)
和 AutoSizeConfig.setAutoAdaptStrategy(AutoAdaptStrategy) 切换策略DisplayMetrics 封装类ExternalAdaptInfo 用来存储外部三方库的适配参数, 因为 AndroidAutoSize 默认会对项目中的所有模块都进行适配
三方库的 Activity 也不例外, 但三方库的适配参数可能和自己项目中的适配参数不一致, 导致三方库的适配效果和理想的效果差别很大
所以需要向 AndroidAutoSize 提供三方库的适配参数, 已完成对三方库的屏幕适配AutoSizeConfig.getExternalAdaptManager() 获取, 切勿自己 new
AndroidAutoSize 通过实现接口的方式来让每个 Activity 都具有自定义适配参数的功能, 从而让每个 Activity 都可以自定义适配效果
但通过远程依赖的三方库并不能修改源码, 所以也不能让三方库的 Activity 实现接口, 实现接口的方式就显得无能为力
ExternalAdaptManager 就是专门用来处理这个问题, 项目初始化时把对应的三方库 Activity 传入 ExternalAdaptManager 即可FragmentLifecycleCallbacksImpl 可用来代替在 BaseFragment 中加入适配代码的传统方式
FragmentLifecycleCallbacksImpl 这种方案类似于 AOP, 面向接口, 侵入性低, 方便统一管理, 扩展性强, 并且也支持适配三方库的 FragmentActivity 是否提供有自定义的适配参数, 如果有则使用此适配参数进行适配ExternalAdaptManager 用来管理外部三方库 Activity 的适配CustomAdapt.getSizeInDp() 须配合 CustomAdapt.isBaseOnWidth() 使用, 规则如下:
如果 CustomAdapt.isBaseOnWidth() 返回 true, CustomAdapt.getSizeInDp() 则应该返回设计图的总宽度
如果 CustomAdapt.isBaseOnWidth() 返回 false, CustomAdapt.getSizeInDp() 则应该返回设计图的总高度
如果您不需要自定义设计图上的设计尺寸, 想继续使用在 AndroidManifest 中填写的设计图尺寸, CustomAdapt.getSizeInDp() 则返回 0Subunits.NONE, 即不支持副单位, 详情请看类文件的注释 UnitsManagerUnitsManager 用来管理 AndroidAutoSize 支持的所有单位, AndroidAutoSize 支持五种单位 (dp、sp、pt、in、mm)AutoSize.initCompatMultiProcess(android.content.Context)
建议实现自定义 Application 并在 Application.onCreate() 中调用 AutoSize.initCompatMultiProcess(android.content.Context)ContentProvider 自动完成初始化
Created by JessYan on 2018/8/19 11:55
Contact me
Follow me
================================================Activity 是否存在在取消适配的列表中, 如果在, 则该 Activity 适配失效Fragment 的适配参数true, App 内的字体的大小将不会跟随系统设置中字体大小的改变
如果为 false, 则会跟随系统设置中字体大小的改变, 默认为 falseUnitsManagerUnitsManagerFragment 的适配参数, 由于这个需求是比较少见的, 所以须要使用者手动开启true, App 内的字体的大小将不会跟随系统设置中字体大小的改变
如果为 false, 则会跟随系统设置中字体大小的改变, 默认为 falseUnitsManagerUnitsManagerSubunits.NONE, 即不支持副单位, 详情请看类文件的注释 UnitsManagerDisplayMetrics.density
所造成的对于其他使用 dp 布局的系统控件或三方库控件的不良影响DisplayMetrics.density 所造成的对于其他使用 dp 布局的系统控件或三方库控件的不良影响
您选择什么单位, 就在 layout 文件中用什么单位布局AutoAdaptStrategy 的包装者, 用于给 AutoAdaptStrategy 的实现类增加一些额外的职责