美文网首页
安卓app禁止跟随系统文字大小而改变

安卓app禁止跟随系统文字大小而改变

作者: A大心 | 来源:发表于2021-01-20 15:16 被阅读0次

    昨天测试给反馈了一个问题,是一个dialogFragment里面的textview显示不全。问题一提出来,我的第一反应肯定是屏幕适配的问题,于是就找了几个机型都是试了一下并没发现问题所在,后来仔细一看测试给发过来的图片发现里面的文字非常大,感觉有点不对劲,肯定是用户自己调了系统的文字大小导致的,最终经过测试验证是这个问题造成的。 知道了问题所在就好办了,剩下的就是寻找解决方案了,自己去尝试了一下把系统文字调到最大,看了一些大型app如何,而支付宝、美团等等这些app的字体都没有改变。这下就有了思路,找到相对应的api去禁止跟随系统文字大小而改变不就解决问题了吗。经过查百度有很多方法都是无效的,下面就例举几个无效的例子,以防大家以后遇到这个问题踩坑。

    无效案例(一)

        //在Application中重写getResources()
        @Override
        public Resources getResources() {
            Resources resources = super.getResources();
            if (resources != null && resources.getConfiguration().fontScale != 1.0f) {
                Configuration configuration = resources.getConfiguration();
                configuration.fontScale = 1.0f;
                resources.updateConfiguration(configuration, resources.getDisplayMetrics());
            }
            return resources;
        }
    
    

    无效案例(二)

       //在BaseActivity中重写getResources()
      @Override
       public Resources getResources() {
         Resources resources = super.getResources();
         Configuration configuration = new Configuration();
         configuration.setToDefaults();
         resources.updateConfiguration(configuration, resources.getDisplayMetrics());
         return resources;
       }
    
    

    还有类似上面很多的例子,就不一一例举了,都是无效的。

    下面说一下我寻找到的有效的方法,,就是使用AutoSize,非常简单并且有效。代码如下:

        //依赖
        api 'me.jessyan:autosize:1.1.2'
    
        //在Application中的onCreate()方法里加入以下代码
        AutoSizeConfig.getInstance().setExcludeFontScale(true);
    
    

    至此就可以解决掉此问题。

    这是setExcludeFontScale()方法的解释

    /**
         * 是否屏蔽系统字体大小对 AndroidAutoSize 的影响, 如果为 {@code true}, App 内的字体的大小将不会跟随系统设置中字体大小的改变
         * 如果为 {@code false}, 则会跟随系统设置中字体大小的改变, 默认为 {@code false}
         *
         * @param excludeFontScale 是否屏蔽
         */
        public AutoSizeConfig setExcludeFontScale(boolean excludeFontScale) {
            isExcludeFontScale = excludeFontScale;
            return this;
        }
    

    此篇文章希望能帮助到大家,让更多的人少踩坑

    相关文章

      网友评论

          本文标题:安卓app禁止跟随系统文字大小而改变

          本文链接:https://www.haomeiwen.com/subject/vpekzktx.html