android – 从设置中读取字体大小

前端之家收集整理的这篇文章主要介绍了android – 从设置中读取字体大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这个问题是几乎公开的 Android App: how to read Font Size under Settings?我读了 CommonsWare的答案,它指向使用Settings.System.FONT_SCALE.所以我写了几行:
float scale = -66.6f;
try {
    scale = android.provider.Settings.System.getFloat(getContentResolver(),android.provider.Settings.System.FONT_SCALE);
} catch(SettingNotFoundException e) {
    Log.e(getClass().getSimpleName(),"Error: ",e);
}
Toast.makeText(this,"scale=" + scale,Toast.LENGTH_LONG).show();

我的问题是我总是得到SettingNotFoundException我正在使用一个Android 4.2.2设备.顺便说一句,我的代码是一个活动的onCreate回调.

我也去搜索这个问题,发现有3个网站使用相同的代码.是否需要特殊许可?我也试过android.permission.WRITE_SETTINGS的权限没有成功.

解决方法

我刚才在源代码中找到了这个 Settings.System这个功能
/** @hide */
public static void getConfigurationForUser(ContentResolver cr,Configuration outConfig,int userHandle) {
    outConfig.fontScale = Settings.System.getFloatForUser(
        cr,FONT_SCALE,outConfig.fontScale,userHandle);
    if (outConfig.fontScale < 0) {
        outConfig.fontScale = 1;
    }
}

但是使用FONT_SCALE,所以我检查了文档指向getResources().getConfiguration()的Configuration类.所以我cound修复我的代码使用:

float scale = getResources().getConfiguration().fontScale;

猜你在找的Android相关文章