以往在应用开发当中,经常进行设配各种问题,要么系统版本,要么是厂商定制的系统不同而进行适配,但前几个月有一个用户喜欢自己改变系统的文字大小,最终导致应用布局乱掉,以往还真的没有测试过这个问题,当时没时间记下来,现进行总结记录;
解决方法:在自定义的MyApplication(继承Application)中,重写onConfigurationChanged()和getResources()
package com.example.yzb.myapplication;
import android.app.Application;
import android.content.res.Configuration;
import android.content.res.Resources;
public class MyApplication extends Application {
@Override
public void onConfigurationChanged(Configuration newConfig) {
if(newConfig.fontScale != 1){//非默认值
getResources();
}
super.onConfigurationChanged(newConfig);
}
@Override
public Resources getResources() {
Resources res = super.getResources();
if(res.getConfiguration().fontScale != 1){
Configuration newConfig = new Configuration();
newConfig.setToDefaults();//设置为默认值
res.updateConfiguration(newConfig,res.getDisplayMetrics());
}
return res;
}
}
如果有用到webView,则调用以下代码即可:
webView.getSetting().setTextZoom(100);