概述
- 系统默四种字体
- noraml (普通字体 系统默用)
- sans(非衬线字体)
- serif (衬线字体)
- monospace(等宽字体)
// serif字体 tvTitle.setTypeface(Typeface.SERIF); // sans字体 tvTitle.setTypeface(Typeface.SANS_SERIF); // monospace字体 tvTitle.setTypeface(Typeface.MONOSPACE);
- 资源一
- 资源二
属性
android:fontFamily
// roboto regular
android:fontFamily="sans-serif"
// roboto light
android:fontFamily="sans-serif-light"
// roboto condensed
android:fontFamily="sans-serif-condensed"
// roboto thin (android 4.2)
android:fontFamily="sans-serif-thin"
压缩
- 下载
- 1文件 2格式 3压缩
注意.TTF提取成功 .otf提取失败
用一
// 读字体文件进内存成字体文件对象
AssetManager mgr = this.getResources().getAssets();
// 路径大小写同扩展名
String path = "AdobeKaitiStd-Regular.otf";
// 构建Typeface文字对象
Typeface t = Typeface.createFromAsset(mgr, path);
tvTitle.setTypeface(t);
用二
Typefaces
package util;
import android.content.Context;
import android.graphics.Typeface;
import java.util.Hashtable;
/**
* @decs: 样式
* @date: 2018/11/22 14:30
*/
public class Typefaces {
private static final String TAG = Typefaces.class.getSimpleName();
private static final Hashtable<String, Typeface> CACHE = new Hashtable<>();
private Typefaces() {
// no instances
}
private static Typeface get(Context context, String assetPath) {
synchronized (CACHE) {
if (!CACHE.containsKey(assetPath)) {
try {
Typeface t = Typeface.createFromAsset(context.getAssets(), assetPath);
CACHE.put(assetPath, t);
} catch (Exception e) {
LogUtils.e(TAG, "Could not get typeface '" + assetPath + "' Error: " + e.getMessage());
return null;
}
}
return CACHE.get(assetPath);
}
}
public static Typeface getNotoSansThaiBold(Context context) {
return get(context, "fonts/NotoSansThai-Bold.ttf");
}
}
主代码
tvTitle.setTypeface(Typefaces.getRobotoBlack(this));