我想做个一键切换程序字体的功能,可改变程序中所有控件的字体,有什么好方法么?
我本打算用这个
view.setTypeface(Typeface.createFromAsset(mContext.getAssets(), "Assets中的字体文件"));
但是难道要一个一个View的设置么?感觉太麻烦了,有什么方便的方法么?安卓字体

解决方案 »

  1.   

    三星手机里面有切换字体功能
    要想改变所有应用的字体需要系统层去做,第三方apk做不了
      

  2.   

    你可以将“Assets中的字体文件”作为一个全局的静态变量;
    但每个View还是要一个个的进行设置,可使用类设置,即你当前的这种方式,还有就是Attrs的方法,不过该方法比较麻烦。建议还是你当前的这种方式。这样的话,虽然在写代码时,看起来比较冗余,但目前好像没有什么别的方法可以设置整体的。
    这样写好之后,将来只需要动态改变“Assets中的字体文件”的那个变量值即可。若有更好的方法,望楼主能共享出来。
      

  3.   

    我觉得如果不用改系统的话,单单就是一个app的字体改动,应该是一个面向切面编程的问题吧。