Android提供三种字体:“Sans”,“serif”和“monospace”。

1、在Android XML文件中设置字体

可以采用android:typeface,例如android:typeface=”monospace”。在这里例子中我们在Activity中对android:text=”Hello, World! 您好”分别进行了四种显示方式,依次为“Sans”,“serif”,“monospace”和系统缺省方式(经试验缺省采用采用sans)。英文字体有差异,貌似中文字体没有差异。XML文件如下:

<?xml version=”1.0″ encoding=”utf-8″?>
<TableLayout … … android:stretchColumns = “1″>
<TableRow>
<TextViewandroid:text=”sans:”
android:layout_marginRight=”4px”
android:textSize=”20sp”/>
<TextView android:text=”Hello, World! 您好”
android:typeface=”sans”<!– android:typeface用于指定字体–>
android:textSize=”20sp”/>
</TableRow>
… …类同,依次设置两个TableRow,分别将sans 修改为serif,monospace … …
<TableRow>
<TextView android:text=”custom:” …. />
<TextView android:id=”@+id/c12_custom”
android:text=”Hello, World! 您好”
android:textSize=”20sp” />
</TableRow>
</TableLayout>

2、使用其他字体

1)将新字体的TTF文件copy到assets/fonts/目录下面,例如我们将“*.ttf”copy了过去。

2)我们需要将widget设置为该字体,比较遗憾的是,不能直接在XML文件中进行,需要编写源代码。

TextView tv = (TextView)findViewById(R.id.c12_custom);
//从assert中获取有资源,获得app的assert,采用getAserts(),通过给出在assert/下面的相对路径。在实际使用中,字体库可能存在于SD卡上,可以采用createFromFile()来替代createFromAsset。
Typeface face = Typeface.createFromAsset(getAssets(),“fonts/timesi.ttf”);
tv.setTypeface(face);

我在模拟器中先后导入华文行楷的字体,大约4M,但是系统无法识别出该字体,没有显示,然后尝试使用英文字体timesi.ttf,正常。因此Android并非和所有的TTF字体都能兼容,尤其在中文特殊字体的支持会存在问题,对于不兼容的字体,Android不出报错,只是无法正常显示。一般而言我们都会使用系统缺省提供的字体。

对于华文行楷字体,我们一开始使用的文件是中文名字,出现报错,后来我们将之改为全小写的英文名称就不会出错,所以在文件命名上需要注意。

顺便给大家一个字体库,去下载吧,

3、一些注意

使用其他字库,都会消耗程序的空间,这是要非常注意的。而且这些字库有时并不能完全提供你所需要的文字。

举个例子,省略方式。当文字太多的时候,可以通过省略号省略后面的内容,省略号是使用“…”作为一个字体,可通过android:ellipsize属性进行设置。如果我们需要使用省略功能,需要确保字体具有省略号。此外,为了保证长度的一直,Android会进行填充处理,除了将一个字符更换为省略符合外,后面的字符将更换为一个特殊的Unicode字符,‘ZERO WIDTH NO-BREAK SPACE’ (U+FEFF)。这个字符并占用任何可视的位置,但是保障了string具有同样的长度。不是所有的字体都支持这个特殊的字符,可能会引发一些乱码现象。

Android是支持国际语言的,但是我们仍需要对custom的字体小心处理。

更多相关文章

  1. Android的文件操作
  2. Android studio学习之TextView、EditText、Button、ImageView、S
  3. 如何安装apk文件在Android仿真器中
  4. 【Android 清单文件下的 Activity各种配置详解】
  5. Android下载文件(一)下载进度&断点续传
  6. 创建android文件系统(Root file system)
  7. Android 修改程序字体

随机推荐

  1. android中空的view,可以设置为水平线
  2. Android(安卓)TextView和ImageView简单说
  3. Android修改自己程序字体
  4. android 获取路径目录方法
  5. ArcGis Android(安卓)10.2.6更新文档翻译
  6. Android(安卓)存储选项之 SQLite 优化那
  7. Android面试系列文章2018之Android部分Fr
  8. android设置透明背景
  9. android:ellipsize的使用
  10. Hello, Android(安卓)深入(一)