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());
  • 相关阅读:
    洛谷 P1236 算24点
    洛谷 P1483 序列变换
    洛谷 P2071 座位安排 seat.cpp/c/pas
    洛谷 P3079 [USACO13MAR]农场的画Farm Painting
    洛谷 P3912 素数个数
    洛谷 P1617 爱与愁的一千个伤心的理由
    洛谷 P1894 [USACO4.2]完美的牛栏The Perfect Stall
    hdu_5908_Abelian Period(暴力)
    hdu_4283_You Are the One(区间DP)
    hdu_5903_Square Distance(dp)
  • 原文地址:https://www.cnblogs.com/monkey0928/p/13211820.html
Copyright © 2011-2022 走看看