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