[转载]android开发之史上最全系列之android用户界面之字体-Android资料下载-eoe 移动开发者论坛 - Powered by Discuz!

[转载]android开发之史上最全系列之android用户界面之字体-Android资料下载-eoe 移动开发者论坛 – Powered by Discuz!.

一、Android系统字体简介
Android的系统字体放在/system/fonts目录下
系统默认字体文件名对应关系如下:
DroidSans.ttf系统默认英文字体
DroidSans-Bold.ttf系统默认英文粗字体
DroidSansFallback.ttf系统默认中文字体
Android更改系统字体的方法
用字体管家一类的字体修改软件,或者直接替换Android系统中相应的字体文件,但是这些操作都需要root权限。字体修改软件使用就不介绍了比较简单,介绍一下字体文件替换的方法。
替换字体文件需要用到RE文件管理器,可以直接对系统文件进行操作如果不嫌麻烦超级终端输入linux命令也是可以的,在替换字体文件之前最好备份以防意外,需要替换的文件是上面提到的三个文件:DroidSans.ttf英文字体、DroidSans-Bold.ttf英文粗字体、DroidSansFallback.ttf中文字体,将你的字体文件名修改成上述三个文件名,然后复制到/system/fonts目录下覆盖这三个文件即可,如果只是想修改中文字体,只需要覆盖DroidSansFallback.ttf中文字体这一个文件即可,如果想修改字体生效,需要重启手机。
二、Android界面设置字体方法
Xml中设置字体、代码中设置字体这两种设置方法都只对当前应用生效,并不影响其他应用的字体。
1、Xml修改字体
只能修改成系统提供的几种字体sansserifmonospacesans是系统默认字体。
修改方法:
设置android:typeface=”normal”属性,该属性下面提供了一个属性是normal其效果与sans一样都是使用系统默认字体。
2、代码中设置字体
这个可以设置任意字体,将要设置的字体文件拷贝到assets目录下,注意文件名不能用中文并且区分大小写。
assets中获取字体文件的方法:用getAserts()获得appassert,再通过给出的assert/下的相对路径来获取字体文件。如果在字体文件在SD上,采用createFromFile()来替代createFromAsset来获取字体文件。
如下:
Typeface ty = Typeface.createFromAsset(getAssets() , “fonts/timesi.ttf” );  
为验证上述两种方法,写了一个简单的程序,程序代码如下:

 

 

 

 

 

 

 

 

 

程序代码

package com.xyw.android.ttftest;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Typeface;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

private TextView ttf4=null,ttf5=null,ttf6=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Typeface tf=Typeface.createFromAsset(getAssets(), "pop.ttf");
ttf4=(TextView)findViewById(R.id.ttf4);
ttf5=(TextView)findViewById(R.id.ttf5);
ttf6=(TextView)findViewById(R.id.ttf6);
ttf4.setTypeface(tf);
tf=Typeface.createFromAsset(getAssets(), "cle.ttf");
ttf5.setTypeface(tf);
tf=Typeface.createFromAsset(getAssets(), "baby.ttf");
ttf6.setTypeface(tf);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}
程序运行效果:


字体文件见附件
测试字体.haozip01.zip (8 MB, 下载次数: 99)

测试字体.haozip02.zip (1.81 MB, 下载次数: 64)

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏