android 滑动全局设置字体大小(不重启当前应用)

    xiaoxiao2021-03-25  67

    1、为什么要动态设置字体大小

        由于项目面对的是中老年客户项目中自带的字体无法满足客户需求。

    2、设置全局字体大小需要做哪些?

        2、1、首先将定义常量进行接收要改变字体大小的系数如:Constant.TEXTVIEWSIXE

              2、设置全局保存系数SharedPreference以便下次进入字体显示上次设置的大小

              3、在BaseActivity中编写以下代码:

    @Override

    public Resources getResources() {

    Resources res =super.getResources();

    Configuration config = res.getConfiguration();

    config.fontScale= Constant.TEXTVIEWSIXE;//1 设置正常字体大小的倍数

    res.updateConfiguration(config,res.getDisplayMetrics());

    returnres;

    }

             4、编写设置大小页面

                            编写当前页面代码就不进行放入进去,需要做的操作是

                                  以上这段代码是将滑动设置的字体系数大小报错入SharedPreference中,并调用getResources()改变系统系数,再通过代码设置当前字体大小来进行设置改变大小。

                                 5、在按返回键的时候通过EventBus来进行通知主页面然后进行重启工作(表面上事根本看不出来的也不会出现卡顿延迟现象)

                                              有的同学不知道EventBus是什么可以进行扩展一下 

     3、什么是EventBus     

            EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。比如请求网络,等网络返回时通过Handler或Broadcast通知UI,两个Fragment之间需要通过Listener通信,这些需求都可以通过EventBus实现。

    如何使用?

    只需要在gradle中导入compile'org.greenrobot:eventbus:3.0.0' 然后就可以使用了

    在在需要重启的页面进行放入以下代码,做到刷新左右(针对带有底部导航侧边栏应用的可以这么做)

    4、针对哪些是可以进行放缩的呢?

               在xml字体中只要是设置带有sp字体大小的都是可以进行设置的,如果说有部分字体不想跟随放缩那么就设置成dp

     

     

    转载请注明原文地址: https://ju.6miu.com/read-32180.html

    最新回复(0)