美文网首页AndroidAndroid 开发技术分享小技巧
android 滑动全局设置字体大小(不重启当前应用)

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

作者: 小小恴乄牜 | 来源:发表于2016-12-16 08:50 被阅读1919次

    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

    相关文章

      网友评论

      • 5c0f6aeb18ac:你好 你这个设置字体的控件能不能分享下?!谢谢!
        5c0f6aeb18ac:751956306@qq.com这是我邮箱
      • Z先生_41f3:求一份这个控制字体demo, 谢谢 谢谢 291390214@qq.com
      • 简书取名好难:大佬 求这个页面的代码 他被是下面的这个滑动控件 邮箱:1432403402@qq.com 谢谢
      • 颍川豫才:求个这个界面的字体控件布局和布局资源 wanda360@qq.com ,谢谢作者。
      • 7982ab8fd469:你好 你这个设置字体的控件能不能分享下?!谢谢!
        5c0f6aeb18ac:@fangsanmin 嗨,哥们有资源吗?可以分享一下吗?751956306@qq.com这是我邮箱
        7982ab8fd469:@小小恴乄牜 你好 邮箱1271628830@qq.com
        小小恴乄牜:@fangsanmin 好的 留下邮箱 我分享给你
      • 391c7ed5c5e5:你的classevent怎么写的 然后enevtbus是怎么注册的 需不需要注销?
        小小恴乄牜:@zmy02070012 需要注销的,具体使用的话,可以查一下EventBus使用指南
      • Amanda_5554:我这个app的功能和你写的类似,整个APP我是用MUI搭建的。你用的是java语言xml吗?作为一个刚刚上岗的小白,就开发做这个难度不是一般的大!能不能指导我一下!1352717859@qq.com进行交流!
      • 我去可以的:changeTextSize(TextViewSizeActivity.class)这个方法是怎么写的
        我去可以的:我有点疑惑。。。为什么要在baseActivity中每次设置字体的缩放比例。其实只要两次就可以了,一次在调整页面字体比例的那个设置界面,还有一次就是在app的启动页面就好了,但是这么设置后,为什么有些页面会失效。。。疑惑,是系统回收了吗
        我去可以的:@小小恴乄牜 好的,谢谢。你有没有注意到updateConfiguration在api25之后就被废弃掉了,有什么好的解决方式吗
        小小恴乄牜:不好意思,这个我还真没注意,我只注重分享了一些思路了。
        public static void changeTextSize(Activity activity){
        Configuration configuration = activity.getResources().getConfiguration();
        configuration.fontScale = Constant.TEXTVIEWSIXE; //1为标准字体,multiple为放大的倍数
        DisplayMetrics displayMetrics = new DisplayMetrics();
        activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
        displayMetrics.scaledDensity = configuration.fontScale*displayMetrics.density;
        activity.getBaseContext().getResources().updateConfiguration(configuration,displayMetrics);
        }
      • 离氺的鱼:是不是在当前页面生效不了啊??
        小小恴乄牜:@5c0f6aeb18ac 不好意思 刚看到 当前页面的设置直接设置就好了 当前页面比较简单
        5c0f6aeb18ac:@小小恴乄牜 当前页面怎么独立设置,求源码
        小小恴乄牜:@离氺的鱼 当前页面独立设置的
      • 21c1f688df0d:也遇到这个问题了 求楼主详细讲解哈
        小小恴乄牜:@愿无悔这一生 不好意思,才看见,哪里与不明白的呢?
      • a266a0709491:求demo源码
        小小恴乄牜:源码是直接写在工程中的,没有抽离出来,你有哪里不明白的,你可以拿出来 大家一起探讨一下呗

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

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