-
使用的三方开源屏幕适配框架
AndroidAutoSize 框架 https://github.com/JessYanCoding/AndroidAutoSize
-
遇到问题的场景
页面中是个RecyclerView控件,页面可以横竖屏切换。竖屏转横屏后切换到桌面,再从桌面回到应用。会出现横屏页面中的不同item字体大小不一致问题。
-
解决方案
在Activity中重写getResources方法,如果是Fragment,在父Activity中重写该方法。
@Override
public Resources getResources() {
//需要升级到 v1.1.2 及以上版本才能使用 AutoSizeCompat
int width = AutoSizeConfig.getInstance().getScreenWidth();
int height = AutoSizeConfig.getInstance().getScreenHeight();
//sizeInDp根据实际情况调整大小
AutoSizeCompat.autoConvertDensity(super.getResources(), 720, width > height);
return super.getResources();
}
然后在Adapter中设置文字大小,单位为PX
tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, AutoSizeUtils.dp2px(mContext, 16));
以上代码解决了我所遇到的问题。