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会重新启动。


  • 2017-07-17 14:48:15

    通过node.js保存emoji到mysql

    但是emoji通过utf-8编码后,每个字符占4个字节,属于宽字符。而老版本的mysql只支持一个字符占3个字节,所以老版本的mysql是无法存储emoji的。新版本的mysql增加了字符集utf8mb4,可以支持单字符最多占4个字节。utf8mb4是utf8的超集,可以无需修改地支持原来的utf8字符 要让mysql存储emoji,需要满足2个条件:

  • 2017-07-17 14:48:20

    通过node.js保存emoji到mysql

    但是emoji通过utf-8编码后,每个字符占4个字节,属于宽字符。而老版本的mysql只支持一个字符占3个字节,所以老版本的mysql是无法存储emoji的。新版本的mysql增加了字符集utf8mb4,可以支持单字符最多占4个字节。utf8mb4是utf8的超集,可以无需修改地支持原来的utf8字符 要让mysql存储emoji,需要满足2个条件:

  • 2017-07-17 17:05:03

    大白话讲解Promise(一)

    去年6月份, ES2015正式发布(也就是ES6,ES6是它的乳名),其中Promise被列为正式规范。作为ES6中最重要的特性之一,我们有必要掌握并理解透彻。本文将由浅到深,讲解Promise的基本概念与使用方法。

  • 2017-07-19 07:54:11

    Javascript中delete运算符

    Delete是Javascript语言中使用频率较低的操作之一,但是有些时候,当我们需要做delete或者清空动作时,就需要delete操作。在这篇文章中,我们将深入探讨如何使用它,以及它是如何工作的。

  • 2017-07-26 11:57:00

    Laravel 定时任务

    在 php 中使用定时器是一件不太简单的事情,之前大概只能通过 cron 来实现定时任务。但是在 Laravel5 中,定时任务将会变得很简单。