android的自定义字体,Android中使用自定义字体的方法

本文介绍了如何在Android平台上方便地导入自定义字体,包括从assets目录加载ttf文件,使用Typeface实例化,并演示了如何为界面控件全局应用自定义字体。方法适用于希望扩展应用字体库的开发者。
摘要由CSDN通过智能技术生成

要在其他平台实现自定义字体可谓是相当的麻烦,但是在Android平台就很简单了。

首先将自定义字体放到“assets”下面被实例化之后再使用,如果你的DDMS中的system/fonts/....下面有你需要的ttf文件的话,

可以直接使用下面的方法来调用

在程序中通过如下方式实例化自定义字体:Typeface.createFromAsset(getContext().getAssets(),"fonts/samplefont.ttf");

1、Android系统默认支持三种字体,分别为:“sans”, “serif”, “monospace

2、在Android中可以引入其他字体 。<?xml version="1.0" encoding="utf-8"?>

Android:layout_width="fill_parent"

Android:layout_height="fill_parent" >

Android:layout_marginRight="4px"

Android:text="sans:"

Android:textSize="20sp" >

Android:id="@+id/sans"

Android:text="Hello,World"

Android:textSize="20sp"

Android:typeface="sans" >

Android:layout_marginRight="4px"

Android:text="serif:"

Android:textSize="20sp" >

Android:id="@+id/serif"

Android:text="Hello,World"

Android:textSize="20sp"

Android:typeface="serif" >

Android:layout_marginRight="4px"

Android:text="monospace:"

Android:textSize="20sp" >

Android:id="@+id/monospace"

Android:text="Hello,World"

Android:textSize="20sp"

Android:typeface="monospace" >

Android:layout_marginRight="4px"

Android:text="custom:"

Android:textSize="20sp" >

Android:id="@+id/custom"

Android:text="Hello,World"

Android:textSize="20sp" >

//得到TextView控件对象

TextView textView =(TextView) findViewById(R.id.custom);//将字体文件保存在assets/fonts/目录下,www.jcodecraeer.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);

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值