当前位置: 首页> 文旅> 美景 > 培训机构暑假不能补课_品牌画册设计公司_百度下载官方下载安装_百度云网盘资源链接

培训机构暑假不能补课_品牌画册设计公司_百度下载官方下载安装_百度云网盘资源链接

时间:2025/7/13 10:05:26来源:https://blog.csdn.net/qq_33209777/article/details/142914784 浏览次数:0次
培训机构暑假不能补课_品牌画册设计公司_百度下载官方下载安装_百度云网盘资源链接

运营反馈,老年用户的手机多设置为大字体,在使用我们app过程中,由于字体被放大,导致布局错乱,部分功能按键遮挡,无法正常使用。
  收到问题,着手解决,除了对界面布局进行改写,改为约束布局,对app字体大小也进行统一管理,然而这不是主要的,最主要的是避免系统更改app字体的大小。
  Android提供了相关的方法用来实现

 public class DisplayUtil {/*** 保持字体大小不随系统设置变化(用在界面加载之前)* 要重写Activity的attachBaseContext()*/public static Context attachBaseContext(Context context, float fontScale) {Configuration config = context.getResources().getConfiguration();//正确写法config.fontScale = fontScale;return context.createConfigurationContext(config);}/*** 保持字体大小不随系统设置变化(用在界面加载之前)* 要重写Activity的getResources()*/public static Resources getResources(Context context, Resources resources, float fontScale) {Configuration config = resources.getConfiguration();if(config.fontScale != fontScale) {config.fontScale = fontScale;return context.createConfigurationContext(config).getResources();} else {return resources;}}/*** 保存字体大小,后通知界面重建,它会触发attachBaseContext,来改变字号*/public static void recreate(Activity activity) {activity.recreate();}
}

  在BaseActivity中复写相关的方法:

 static float fontScale = 1f;@Overridepublic Resources getResources() {Resources resources = super.getResources();return DisplayUtil.getResources(this,resources,fontScale);}@Overrideprotected void attachBaseContext(Context newBase) {super.attachBaseContext(DisplayUtil.attachBaseContext(newBase,fontScale));}public void setFontScale(float fontScale) {this.fontScale = fontScale;DisplayUtil.recreate(this);}

经测试,在设置中把字体调整为最大,打开app,app中字体均保持不变,测试华为,vivo,小米机型均生效,于是交付测试。



 

关键字:培训机构暑假不能补课_品牌画册设计公司_百度下载官方下载安装_百度云网盘资源链接

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: