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

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、编写设置大小页面

android 滑动全局设置字体大小(不重启当前应用)_第1张图片

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

android 滑动全局设置字体大小(不重启当前应用)_第2张图片

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

android 滑动全局设置字体大小(不重启当前应用)_第3张图片

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

android 滑动全局设置字体大小(不重启当前应用)_第4张图片

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

 3、什么是EventBus     

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

如何使用?

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

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

android 滑动全局设置字体大小(不重启当前应用)_第5张图片

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

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

你可能感兴趣的:(android 滑动全局设置字体大小(不重启当前应用))