解析Android中使用自定义字体的实现方法
1、android系统默认支持三种字体,分别为:“sans”, “serif”, “monospace
2、在android中可以引入其他字体 。
<?xml version="1.0" encoding="utf-8"?>
<tablelayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<tablerow>
<textview
android:layout_marginright="4px"
android:text="sans:"
android:textsize="20sp" >
</textview>
<!-- 使用默认的sans字体 -->
<textview
android:id="@+id/sans"
android:text="hello,world"
android:textsize="20sp"
android:typeface="sans" >
</textview>
</tablerow>
<tablerow>
<textview
android:layout_marginright="4px"
android:text="serif:"
android:textsize="20sp" >
</textview>
<!-- 使用默认的serifs字体 -->
<textview
android:id="@+id/serif"
android:text="hello,world"
android:textsize="20sp"
android:typeface="serif" >
</textview>
</tablerow>
<tablerow>
<textview
android:layout_marginright="4px"
android:text="monospace:"
android:textsize="20sp" >
</textview>
<!-- 使用默认的monospace字体 -->
<textview
android:id="@+id/monospace"
android:text="hello,world"
android:textsize="20sp"
android:typeface="monospace" >
</textview>
</tablerow>
<!-- 这里没有设定字体,我们将在java代码中设定 -->
<tablerow>
<textview
android:layout_marginright="4px"
android:text="custom:"
android:textsize="20sp" >
</textview>
<textview
android:id="@+id/custom"
android:text="hello,world"
android:textsize="20sp" >
</textview>
</tablerow>
</tablelayout>
// 得到textview控件对象
textview textview = (textview) findviewbyid(r.id.custom);
// 将字体文件保存在assets/fonts/目录下,www.linuxidc.com创建typeface对象
typeface typeface = typeface.createfromasset(getassets(),"fonts/droidsansthai.ttf");
// 应用字体
textview.settypeface(typeface);
如果想对整个界面的所有控件都应用自定义字体,可以:
package arui.blog.csdn.net;
import android.app.activity;
import android.graphics.typeface;
import android.view.view;
import android.view.viewgroup;
import android.widget.button;
import android.widget.edittext;
import android.widget.textview;
public class fontmanager {
public static void changefonts(viewgroup root, activity act) {
typeface tf = typeface.createfromasset(act.getassets(),
"fonts/xxx.ttf");
for (int i = 0; i < root.getchildcount(); i++) {
view v = root.getchildat(i);
if (v instanceof textview) {
((textview) v).settypeface(tf);
} else if (v instanceof button) {
((button) v).settypeface(tf);
} else if (v instanceof edittext) {
((edittext) v).settypeface(tf);
} else if (v instanceof viewgroup) {
changefonts((viewgroup) v, act);
}
}
}
}
推荐阅读
-
基于Android中实现定时器的3种解决方法
-
解析在Android中为TextView增加自定义HTML标签的实现方法
-
解析Android中实现滑动翻页之ViewFlipper的使用详解
-
基于Android中Webview使用自定义的javascript进行回调的问题详解
-
解析Android应用启动后自动创建桌面快捷方式的实现方法
-
解析Android中如何做到Service被关闭后又自动启动的实现方法
-
解析android中隐藏与显示软键盘及不自动弹出键盘的实现方法
-
解析Android中使用自定义字体的实现方法
-
Android开发使用自定义View将圆角矩形绘制在Canvas上的方法
-
Android开发实现webview中img标签加载本地图片的方法