Skip to content

动态设置activity文字大小,无需重启activity,无需重建view,直接生效

Notifications You must be signed in to change notification settings

Xigong93/TextSizeHelper

Repository files navigation

TextSizeHelper Download

动态修改app或单个activity 字体大小的帮助类 特性:

  • 不需要重启,立即生效
  • 低侵入性,几行代码即可集成

集成步骤:

  1. gradle 引入依赖
implementation 'pokercc.android:textSizeHelper:${last_version}'
  1. app级别的集成

2.1 在application 中初始化

AppTextSizeHelper.init(this);

2.2 改变字体大小

AppTextSizeHelper.onFontScaled(context, 1.5f);// 字体放大50%
  1. activity级别的集成(选用)

3.1 在attachBaseContext方法中创建ActivityTextSizeHelper对象

private ActivityTextSizeHelper textSizeHelper;
@Override
protected void attachBaseContext(Context context){
     super.attachBaseContext(newBase);
     textSizeHelper = ActivityTextSizeHelper(this);
}

3.2 在onResume方法中调用onResume方法,跟踪view树

@Override
protected void onResume() {
    super.onResume()
    textSizeHelper.onResume();
    
 }

3.3 修改activity.getResource方法的实现

@Override
public Resources getResources(){
    return textSizeHelper.getProxyResource(super.getResources());
}

3.4 改变字体大小

textSizeHelper.onFontScaled(1.5f);// 字体放大50%

已知bug:

  • 增大activity的字体后,重启activity,设置了排除(use_dp)的TextView字体也会变大,原因是这些TextView使用sp作为尺寸单位,而字体缩放比已经变化了

About

动态设置activity文字大小,无需重启activity,无需重建view,直接生效

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published