您的位置:首页 > 科技 > 能源 > 广州工商注册代办机构_56度卫星有几个成人节目呢_seo搜索引擎官网_惠州企业网站seo

广州工商注册代办机构_56度卫星有几个成人节目呢_seo搜索引擎官网_惠州企业网站seo

2024/11/14 4:51:06 来源:https://blog.csdn.net/qq_33209777/article/details/142914784  浏览:    关键词:广州工商注册代办机构_56度卫星有几个成人节目呢_seo搜索引擎官网_惠州企业网站seo
广州工商注册代办机构_56度卫星有几个成人节目呢_seo搜索引擎官网_惠州企业网站seo

运营反馈,老年用户的手机多设置为大字体,在使用我们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