Releases: JessYanCoding/AndroidAutoSize
1.2.1
1.2.0
其他三方库:AndroidX 和 Support 您只能选择其一!
AndroidAutoSize: 不,我全都要!
-
重大更新: 同时兼容 Androidx 和 Support, 框架会根据您项目的依赖情况自动选择对应的 Library,并应用不同的处理逻辑,使用 AndroidX 和 Support 的新旧项目都可以放心的升级到 v1.2.0,升级并不会对您的老项目造成任何影响。
-
优化在 InitProvider 中初始化 AndroidAutoSize 时 Application 可能为 null 的问题。
-
新增对 Configuration.screenWidthDp 和 Configuration.screenHeightDp 的修改,将 screenWidthDp 和 screenHeightDp 修改为适配后的屏幕 dp 尺寸,以便于使用者和三方库获取到适配后的正确屏幕尺寸。 2d071d3
-
提升 Gradle 到 v5.4.1。
-
新增: 添加 AutoSize#checkAndInit(Application) 方法, 保证 AndroidAutoSize 在异常情况下也能够正常初始化。
-
优化: 在初始时给设计图尺寸设置默认值。
-
修复: 小米手机适配失效的问题。
-
优化: LogUtils 更名为 AutoSizeLog 避免与其他同名的日志工具类冲突。
-
新增: 添加 AutoSizeConfig#setExcludeFontScale 方法调整 APP 内字体大小的放大比例, 区别于系统字体大小的放大比例, 可以全局调节 APP 内字体的大小。
-
更新: Android SDK 版本提升为 29。
-
新增: Androidx Demo。
1.1.2
- 增加 AutoSizeCompat 类,重写 Activity 的 getResources() 使用以下代码即可解决所有屏幕适配失效的问题
@Override
public Resources getResources() {
AutoSizeCompat.autoConvertDensityOfGlobal((super.getResources());//如果没有自定义需求用这个方法
AutoSizeCompat.autoConvertDensity((super.getResources(), 667, false);//如果有自定义需求就用这个方法
return super.getResources();
}
- 增加 AutoSizeConfig#setStatusBarHeight(int) 方法,框架使用者可自行修改状态栏高度
1.1.1
很多人都在询问我,如何让 App 内的字体大小不跟随系统设置中字体大小的改变,AndroidAutoSize 本身是不支持这个需求的,因为在我看来你如果不想让 App 内的字体大小跟随系统字体的大小进行改变,那不使用 sp 作为字体大小的单位即可,为何即要用 sp 又不想使用 sp 的特性,这不是自相矛盾吗,那你用 sp 的意义何在呢?所以我并没有给出这个需求的解决方案,虽然我没有给出解决方案,但这并不妨碍他们自己动手,自己尝试解决问题的行为值得鼓励,于是他们尝试使用以下代码解决这个需求
@Override
public Resources getResources() {
Resources res = super.getResources();
Configuration config = new Configuration();
config.setToDefaults();
res.updateConfiguration(config, res.getDisplayMetrics());
return res;
}
由于 DisplayMetrics 是全局的,AndroidAutoSize 这刚刚才修改了 density,你这一来就 setToDefaults(),将所有参数设为默认值,这不冲突才怪呢,这下冲突了就又来找我了... 我能怎么办?我也很无奈啊!我让你不使用 sp,你又觉得我敷衍你,好吧,作为一个全面、强大的屏幕适配框架,这个需求我虽然不理解,但既然是人民的需求,我还是尽量满足吧,现在将 AndroidAutoSize 升级到 v1.1.1,使用下面一行代码即可实现这个需求
AutoSizeConfig.getInstance().setExcludeFontScale(true);
1.1.0
1.0.6
1.优化 getRawScreenSize#getScreenSize 中获取屏幕尺寸的方式,在各种异常情况下,让屏幕尺寸也能获取到正确的值
1.0.5
1.增加 onAdaptListener 接口,可监听屏幕适配时的一些事件
AutoSizeConfig.getInstance()..setOnAdaptListener(new onAdaptListener() {
@Override
public void onAdaptBefore(Object target, Activity activity) {
LogUtils.d(String.format(Locale.ENGLISH, "%s onAdaptBefore!", target.getClass().getName()));
}
@Override
public void onAdaptAfter(Object target, Activity activity) {
LogUtils.d(String.format(Locale.ENGLISH, "%s onAdaptAfter!", target.getClass().getName()));
}
});
1.0.1
1.Add AutoSizeConfig#setDesignWidthInDp(int) and AutoSizeConfig#setDesignHeightInDp(int)
1.0.0
- Upgrade Gradle to v4.6
- Upgrade build-gradle to v3.2.0
- Upgrade buildToolsVersion to v28.0.3
- Upgrade appcompat-v7 to v28.0.0
- 增加 AutoSizeConfig#isVertical()、AutoSizeConfig#setVertical(boolean)、AutoSizeConfig#setScreenWidth(int)、AutoSizeConfig#setScreenHeight(int) 等方法
- 优化 AutoSize#autoConvertDensity(Activity, float, isBaseOnWidth),在横竖屏切换时自动更新框架储存的屏幕信息
- 优化 AutoSize#cancelAdapt(Activity),https://github.com/JessYanCoding/AndroidAutoSize/issues/12#issuecomment-428125193
- 添加 consumerProguardFiles
- 在 ActivityLifecycleCallbacksImpl#onActivityStarted(Activity) 中重设 density,增强框架稳定性
0.9.5
1.增加 AutoSize#initCompatMultiProcess(Context),修复 AndroidAutoSize 在多进程下不能初始化的问题