版权声明:本文为 宇不语 原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35064774/article/details/52950652
如有转载,请申明:
转载至 http://blog.csdn.net/qq_35064774/article/details/52950652
TextView修改字体
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/ping_fang_light.ttf");
tvName.setTypeface(typeface);
全局修改字体
首先需要自定义一个
Application
子类,在应用创建之后,就利用反射修改样式字段设置字体。
import java.lang.reflect.Field;
import android.app.Application;
import android.graphics.Typeface;public class TypefaceApplication extends Application{ public static Typeface typeFace; @Override public void onCreate() { super.onCreate(); setTypeface(); } public void setTypeface(){ // 加载外部字体assets/fonts/ping_fang_light.ttf typeFace = Typeface.createFromAsset(getAssets(), "fonts/ping_fang_light.ttf"); try { //与values/styles.xml中的<item name="android:typeface">sans</item>对应 Field field = Typeface.class.getDeclaredField("SANS_SERIF"); field.setAccessible(true); field.set(null, typeFace); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } }
然后打开
values/styles.xml
,在AppTheme
中增加一个item
。
sans比如,我的代码是这样的
@color/colorPrimary
@color/colorPrimaryDark
@color/colorAccent
sans
然后把自定义的
TypefaceApplication
配置到AndroidManifest.xml
中去。在application
标签内增加如下属性。
android:name=”.TypefaceApplication”