Android动态调整应用字体大小的案例

  介绍

这篇文章将为大家详细讲解有关Android动态调整应用字体大小的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

为什么要动态设置字体大小?由于项目面对的是中老年客户项目中自带的字体无法满足客户需求。

Android应用字体大小默认随系统设置的字体大小而变化,但您可能不希望您的应用字体大小随系统设置变化,想要自己控制,例如微信。本文简单介绍一下如何实现应用字体大小动态调整而不是依赖系统设置

字体大小变化是由<代码> android.content.res.Configuration.class>

 Android动态调整应用字体大小的案例

public  class  MainApplication  extends  Application  implements  Application.ActivityLifecycleCallbacks  {   ,private  List activityList;   ,private  float  fontScale;   ,private  SharedPreferences 偏好;   ,private  static  MainApplication  mainApplication;      ,@Override   ,public  void  onCreate (), {   super.onCreate才能();   ,,init ();   ,}      ,private  void  init (), {   时间=mainApplication 才能;;   时间=preferences 才能;PreferenceManager.getDefaultSharedPreferences(这个);   时间=fontScale 才能;getFontScale ();   registerActivityLifecycleCallbacks才能(这个);   ,}      ,public  static  float  getFontScale (), {   float 才能;fontScale =, 1.0 f;   if 才能;(mainApplication  !=, null), {   ,,fontScale =, mainApplication.preferences.getFloat (“fontScale",, 1.0度);   ,,}   return 才能;fontScale;   ,}      ,@Override   ,public  void  onActivityCreated (Activity 活动,Bundle  savedInstanceState), {   if 才能;(activityList ==, null), {   ,,activityList =, new  ArrayList<在();   ,,}//才能,禁止字体大小随系统设置变化   Resources 才能;Resources =, activity.getResources ();   if 才能;(resources  !=, null ,,, resources.getConfiguration () .fontScale  !=, fontScale), {   ,,android.content.res.Configuration  configuration =, resources.getConfiguration ();   ,,configuration.fontScale =, fontScale;   ,,resources.updateConfiguration(配置,resources.getDisplayMetrics ());   ,,}   activityList.add才能(活动);   ,}      ,@Override   ,public  void  onActivityStarted (Activity 活动),{      ,}      ,@Override   ,public  void  onActivityResumed (Activity 活动),{      ,}      ,@Override   ,public  void  onActivityPaused (Activity 活动),{      ,}      ,@Override   ,public  void  onActivityStopped (Activity 活动),{      ,}      ,@Override   ,public  void  onActivitySaveInstanceState (Activity 活动,Bundle  outState), {      ,}      ,@Override   ,public  void  onActivityDestroyed (Activity 活动),{   if 才能;(activityList  !=, null), {   ,,activityList.remove(活动);   ,,}   ,}      ,public  static  void  setAppFontSize (float  fontScale), {   if 才能;(mainApplication  !=, null), {   ,,ListAndroid动态调整应用字体大小的案例