Android获取系统字体倍数

2019-05-21 14:51:42
try {
    Configuration mCurConfig = new Configuration();
    // 获取ActivityManagerNative类的对象activityManagerNative
    Class<?> activityManagerNative = Class
            .forName("android.app.ActivityManagerNative");
         /*
          * 获得可调用getConfiguration方法的对象oam(调用getDefault方法得到的东西)
          * getMethod:获取AMN类中的getDefault方法
          * invoke:通过activityManagerNative对象调用getDefault方法
          */
    Object oam = activityManagerNative.getMethod("getDefault")
            .invoke(activityManagerNative);
    // 获取getConfiguration方法并通过oam对象调用,得到config对象
    Object config =
            oam.getClass().getMethod("getConfiguration")
                    .invoke(oam);
    mCurConfig.updateFrom((Configuration) config);
    float fontScale = mCurConfig.fontScale;
} catch (ClassNotFoundException e) {
    e.printStackTrace();
} catch (IllegalAccessException e) {
    e.printStackTrace();
} catch (IllegalArgumentException e) {
    e.printStackTrace();
} catch (InvocationTargetException e) {
    e.printStackTrace();
} catch (NoSuchMethodException e) {
    e.printStackTrace();
}
每次字体改动,如果对configChange没有设定,返回Activity会重新启动。


  • 2023-09-21 16:49:06

    用webpack.ProvidePlugin来解决Photo-Sphere-Viewer旧版本浏览器兼容问题

    上篇文章已经搭建了最基本的项目,我用手机下载了一个版本62.点开头的chrome apk来测试。 果真白屏,啥也没有,也看不到报错信息。 赶紧安装 vconsole ,重启,刷新,依然白屏,连vconsole也没有。这可咋弄。 想了下,这浏览器老的是可以呀,还得修改编译参数,加大es5的处理。 根目录有一个配置文件 .browserslistrc 里面的配置如下