我在网上看了很多,方法都是把字体文件放在assets的font目录下,但只是用在某一个控件上,我想把自定义的字体用于所有文字,应该怎么设置?求大神提出指导

解决方案 »

  1.   

    属性值写在AndroidManifest的Application标签下面
      

  2.   

      貌似没有一劳永逸的办法。
         我能想到的就是递归遍历当前根View,如果该View的子类为TextView(所有具备text的都是TextView的子类。)类型,则设置该子类View的typeface。   拿Activity来说 :
         
         public  void onCreate(Bundle ){             setContentView(R.layout.Xxxx);
                 recrusiveDecorViewSetTypeface(this.getWindow().getDecorView());
         }
         //递归树,设置typeface
         private void recrusiveDecorViewSetTypeface(View rootView){
              //不是ViewParent类型,并且是TextView类型,则设置字体。
              if( ! rootView instanceof ViewParent ){
                   if(rootView instanceof TextView){
                          ((TextView)rootView).setTypeface() ; // 强制转换为TextView,设置typeface
                   }
                   return ;   //直接返回
              }
                
              for( int i = 0 ; i < (ViewParent)rootView.getChildCount() - 1 ; i ++)
              {
                    recrusiveDecorViewSetTypeface(rootView.getChildAt(i));   //递归
              }
               
         }     关于自定义View , 只能手动设置Paint属性了。
      

  3.   

    不用那么麻烦  在AndroidManifes里面有个android:theme="@style/MyTheme"新建一个styles 里面自己改 字体颜色大小风格
    <resources>
    <style name="Theme.MyTheme" parent="@style/Theme">
            <item name="android:colorForeground">@drawable/black</item>
            <item name="android:colorBackground">@drawable/white</item>
            <item name="android:windowNoTitle">false</item>
            <item name="android:textStyle">normal</item>
        </style>
    </resources>