方法一、在activity类里添加,其他组件类需要传入activity(不推荐,多次调用)
/**
* 调整屏幕分辨率
* @param ztSize 字体取值:0.85 小, 1 标准大小, 1.15 大,1.3 超大 ,1.45 特大
* @param dpi DPI取值为:120dpi、160dpi,213dpi(TVdpi),240dpi,320dpi,480dpi
*/
private void initFontScale(float ztSize, int dpi) {
Configuration configuration = getResources().getConfiguration();
configuration.fontScale = ztSize;
configuration.densityDpi = dpi;
DisplayMetrics metrics =new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.scaledDensity = configuration.fontScale * metrics.density;
getBaseContext().getResources().updateConfiguration(configuration, metrics);
}
方法二、同样在activity里添加,其他组件类需要传入activity(推荐,调用一次)
/**
* 调整屏幕分辨率
* @param ztSize 字体取值:0.85 小, 1 标准大小, 1.15 大,1.3 超大 ,1.45 特大
* @param dpi DPI取值为:120dpi、160dpi,213dpi(TVdpi),240dpi,320dpi,480dpi
*/
private void overrideFontScale(Context context, float ztSize, int dpi) {
if (context == null) return;
Configuration configuration = context.getResources().getConfiguration();
configuration.fontScale = ztSize;
configuration.densityDpi = dpi;//设置dpi
applyOverrideConfiguration(configuration);
}
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(newBase);
overrideFontScale(newBase,1.3f);
}