zoukankan      html  css  js  c++  java
  • Android 禁用字体大小和显示大小

    1.写一个工具类,代码如下

    /**
     * Author : monkey0928
     * E-mail : hanbao@xwtec.c
     * Date : 2020/6/29 17:54
     * DESCRIBE :禁用字体大小和显示大小随系统变化
     */
    public final class DispUtil {
    
        /**
         * 禁用显示大小改变和文字大小
         */
        public static Resources disabledDisplayDpiChange(Resources res) {
            Configuration newConfig = res.getConfiguration();
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                //字体非默认值
                if (res.getConfiguration().fontScale != 1) {
                    newConfig.fontScale = 1;
                }
                newConfig.densityDpi = getDefaultDisplayDensity();
                res.updateConfiguration(newConfig, res.getDisplayMetrics());
            } else {
                //字体非默认值
                if (res.getConfiguration().fontScale != 1) {
                    newConfig.fontScale = 1;//设置默认
                    res.updateConfiguration(newConfig, res.getDisplayMetrics());
                }
            }
            return res;
        }
    
        /**
         * 获取手机出厂时默认的densityDpi
         */
        public static int getDefaultDisplayDensity() {
            try {
                Class aClass = Class.forName("android.view.WindowManagerGlobal");
                Method method = aClass.getMethod("getWindowManagerService");
                method.setAccessible(true);
                Object iwm = method.invoke(aClass);
                Method getInitialDisplayDensity = iwm.getClass().getMethod("getInitialDisplayDensity", int.class);
                getInitialDisplayDensity.setAccessible(true);
                Object densityDpi = getInitialDisplayDensity.invoke(iwm, Display.DEFAULT_DISPLAY);
                return (int) densityDpi;
            } catch (Exception e) {
                e.printStackTrace();
                return -1;
            }
        }
    
    } 

    2.直接在BaseActivty 或者Actiivty  的 onCreate方法中调用即可

      DispUtil.disabledDisplayDpiChange(this.getResources());
  • 相关阅读:
    C#屏幕截图
    WPF转换器用法示例
    WPF自定义数字输入框控件
    LINQ 用法,返回结果不是在定义时取值,而是在调用时实时取值,有意思!
    类泛型--必须继承接口
    wpf在异步中给前台赋值
    VS Code中Matlab插件安装设置
    Python 自动给数字前面补0
    Tensorflow (1)
    解决Keras在IDE集成环境中找不到nvcc
  • 原文地址:https://www.cnblogs.com/monkey0928/p/13211820.html
Copyright © 2011-2022 走看看