AndroidAutoSize
AndroidAutoSize copied to clipboard
使用Autosize长度生效,文字大小不完全生效
Environment
- [x] Autosize Version: v1.2.1
- [x] Target Android Version: Android 9/鸿蒙os beta2
- [x] Device Model: 小米note3/华为mate30pro
- [x] Device Resolution: 1080px * 1920px/1176px * 2400px
- [x] Design Size On AndroidManifest: 375dp * 750dp
Bug Description:
集成1.2.1版本后,屏幕适配生效,dp对应的适配都是没问题的,但是文字大小适配的不完全生效,具体来说实际适配的ScaledDensity会比计算的ScaledDensity大一些。日志也都是是正常计算出来的ScaledDensity
做过如下尝试:
- 1.更改design size的width宽度,整体也会放大缩小,但是实际适配的ScaledDensity还是会比计算出来的大。density依旧适配正常。
- 2.尝试重写getResources(),页面适配正常。(density、ScaledDensity都正常) ··· @Override public Resources getResources() { //需要升级到 v1.1.2 及以上版本才能使用 AutoSizeCompat Resources resources = super.getResources(); Log.d(TAG, "getResources1: density " + resources.getDisplayMetrics().scaledDensity); // AutoSizeCompat.autoConvertDensityOfGlobal(resources);//如果没有自定义需求用这个方法 Log.d(TAG, "getResources2: density " + resources.getDisplayMetrics().scaledDensity); return resources; } ···
Log:


Screenshot
高度一致,但不是文字大小不一致,切相差较大

Related Code:
Others:
可能是系统字体大小的影响,setExcludeFontScale,如果 API 不起作用,那就可能是项目中的其他地方的未知代码设置了 ScaledDensity,ScaledDensity 和 Density 是整个项目公有的,三方库或者系统都有可能修改他们,框架也不无法阻止这些行为,所以在 getResources() 设置是最保险的选择
您好,您解决这个问题了吗,我也遇到了
您好,您解决这个问题了吗,我也遇到了
没有找到root cause,目前还是通过重写getResources()解决