解决Font size和Display size设置到最大,显示异常的问题

前言

Android7.0的设置里面有一个显示模块,里面有字体大小和显示大小的设置,调节的时候可能会造成显示异常的问题。


具体问题复现路径有两种
1. 大小之间的转换(包括设置字体和显示),看你的应用是否显示正常
2. 设置成最小,清除缓存,进入自己的应用,然后进入设置,将字体和显示均调成最大,这时再进入应用看看,看显示是否正常

解决方法

其实这两个归根结底,原因都是没有完全重绘,所以我们的解决方法有三个:
1. 获取字体改变或者显示改变的事件时,清除应用的缓存
2. 获取字体改变或者显示改变的事件时,结束自己的应用
3. 获取字体改变或者显示改变的事件时,重新New对应的View

清除缓存的方法,网上有很多,我这里就不说了,各位可以自行百度;第三种方法也很简单,只要用一个flag来判断就行,当获取到改变事件时,flag置为true,然后把对应View的引用置为null,flag置为false,最后重新New对应的View。

接下来我说一下第二种方法,其实结束自己的应用也有很多种方法。比如:杀死自己的进程,finsh自己的Activity等等,我用的是杀死自己进程的方法。


步骤

  1. 捕获字体改变和显示大小改变的事件
    在AndroidManifest.xml的application里面设置android:configChanges="fontScale|screenSize"

  2. 对获取的事件进行处理
    在继承Application的类里面加入如下代码:

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        android.os.Process.killProcess(android.os.Process.myPid());
        System.exit(0);
    }

这样每次字体大小或者显示大小改变的时候,就能杀死当前应用的进程,再进入自己的应用就会重新绘制,不会再有显示异常的问题。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值