欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

解析Android中使用自定义字体的实现方法

程序员文章站 2023-11-23 22:39:04
1、android系统默认支持三种字体,分别为:“sans”, “serif”, “monospace 2、在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);  
           }  
       }  

    }