(技术)Android 默认非衬线字体修改为衬线字体
2018-06-22 本文已影响0人
点映文艺
先说说什么是衬线字体,什么是非衬线字体。
衬线字体: 横笔细竖笔粗,笔画开始结束有修饰。
非衬线字体:横笔竖笔粗细一致,笔画开始结束无修饰。
还不明白?
宋体、仿宋、方正粗宋简体 就是 衬线字体,
黑体就是非衬线字体。
还不明白? 我向你道歉。
应用场景的区别:
衬线字体容易辨识,易读性高,适合用于篇幅比较大的正文。
无衬线字体醒目,适合用于标题、DM、海报等需要醒目但不需要长时间阅读的地方。但现在有个趋势,很多正文也开始采用无衬线字体,因为无衬线字体比较清新,比较有艺术感。
看够了Android默认的非衬线字体,想尝试尝试衬线字体怎么办?
好了,下面开始扯正题。
- 下载好想要使用的字体文件,.ttf后缀的哟
2.项目目录assets文件夹下,字体扔进去 - 代码:
Typeface mtypeface = Typeface.createFromAsset(getAssets(),"song.ttf");
currentItemName.setTypeface(mtypeface);
4.测试呗
我想整个项目都用衬线字体怎么办?
public void changeFontTypaFace(){
Typeface fangZhengSong3 = Typeface.createFromAsset(getAssets(),"fangzhengsongsan.ttf");
try {
Field field = Typeface.class.getDeclaredField("SERIF");
field.setAccessible(true);
field.set(null, fangZhengSong3);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
在styles.xml文件下设置样式
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:typeface">serif</item>
</style>
application节点下引用主题样式android:theme="@style/AppTheme"
运行一下试试
哇哦,衬线字体耶!!!