Android全局修改字体大小,Android 应用全局字体调节或禁止随系统字体大小更改
1.禁止跟隨系統(tǒng)字體大小調(diào)節(jié)
在Application中復(fù)寫getResources()方法
@Override
public Resources getResources() {//還原字體大小
Resources res = super.getResources();
Configuration configuration = res.getConfiguration();
if (configuration.fontScale != 1.0f) {
configuration.fontScale = 1.0f;
res.updateConfiguration(configuration, res.getDisplayMetrics());
}
return res;
}
2.應(yīng)用全局字體大小調(diào)節(jié)
在Application中復(fù)寫getResources()方法
@Override
public Resources getResources() {//還原字體大小
Resources res = super.getResources();
Configuration configuration = res.getConfiguration();
if (configuration.fontScale != fontScale) {//fontScale要縮放的比例
configuration.fontScale = fontScale;
res.updateConfiguration(configuration, res.getDisplayMetrics());
}
return res;
}
3.Android 8.0適配
Android 8.0上會(huì)發(fā)現(xiàn)這樣修改字體的縮放比例是不起作用的,
需要在Activity中同樣進(jìn)行復(fù)寫getResources()方法。
4.整個(gè)應(yīng)用字體大小調(diào)節(jié)方案
在設(shè)置界面進(jìn)行字體縮放比例調(diào)節(jié),退出時(shí)關(guān)閉所有已打開的Activity,并重啟主界面。
@Override
public void onBackPressed() {
saveFontScaleRate();
}
private void saveFontScaleRate() {
if (defaultFontScaleRate != fontScaleRate) {
new SpUtils(FontScaleActivity.this).putData(ICourtApplication.FONT_SCALE_RATE, fontScaleRate);
BaseApplication.setFontScale(fontScaleRate);
AppManager appManager = AppManager.getAppManager();
MainActivity activity = appManager.getActivity(MainActivity.class);
appManager.finishAllActivity(activity);
activity.recreate();
} else {
finish();
}
}
5.注意
所有想要縮放的控件,不只是TextView,任何控件,只需要將尺寸單位換成SP,
自然,不想要隨字體調(diào)節(jié)改變的也只需將SP換成其他單位。
總結(jié)
以上是生活随笔為你收集整理的Android全局修改字体大小,Android 应用全局字体调节或禁止随系统字体大小更改的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 机器学习中各类算法的优缺点比较
- 下一篇: java虚拟机参数优化_JAVA虚拟机J