一、局部修改字体样式
将Android Studio切换到project形式下进入到main目录,右键新建文件夹assets,再右键新建fonts文件夹,把准备好的.ttf文件放在该文件夹下。
在代码中添加如下代码即可:
tvUserName.setTypeface(Typeface.createFromAsset(mContext.getAssets(),"fonts/numbertype.ttf"));
好了,可以直接使用了
二、全局修改字体样式
但是如果需要把整个App的字体都改变了,这时就需要全局更改了
1、首先重写Application,在onCreate()方法中执行下列代码:
@Override
public void onCreate() {
super.onCreate();
Typeface mTypeface = Typeface.createFromAsset(getAssets(), "fonts/numbertype.ttf");
try {
Field field = Typeface.class.getDeclaredField("MONOSPACE");
field.setAccessible(true);
field.set(null, mTypeface);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
2、在style.xml文件中自定义一个主题
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorTheme</item>
<item name="colorPrimaryDark">@color/colorTheme</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:typeface">monospace</item>
</style>
3、在AndroidManifest.xml文件中声明这个 AppTheme
<application
android:name=".base.MyApplication"
android:allowBackup="true"
android:icon="@mipmap/icon_logo"
android:label="@string/app_name"
android:roundIcon="@mipmap/icon_logo"
android:supportsRtl="true"
android:theme="@style/AppTheme">
</application>