fonts-如何使用自定义的字体文件?

问题描述

如何使用自定义的字体文件?
我想使用自定义的字体文件,用的下面的代码:

<?xml version=""1.0"" encoding=""utf-8""?>   <LinearLayout xmlns:android=""http://schemas.android.com/apk/res/android""                 android:orientation=""vertical""                 android:layout_width=""fill_parent""                 android:layout_height=""fill_parent""           >       <TextView               android:id=""@+id/custom_font""               android:layout_width=""fill_parent""               android:layout_height=""wrap_content""               android:text=""This is the Chantelli Antiqua font.""               />  </LinearLayout>    TextView txt = (TextView) findViewById(R.id.custom_font);     Typeface font = Typeface.createFromAsset(getAssets()Chantelli_Antiqua.ttf"");     txt.setTypeface(font); 

可以正常运行,但是我想在整个程序中使用这个自定义的字体。因此我需要放置在一个所有的类都能使用它的地方。不用为每一个TextView 创建。
如何使用这个custom font, 再放置在哪里?

解决方案

你可以创建一个自定义的 TextView 来继承 TextView 来设置自定义字体。
TextViewPlus.java:

package com.example;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Typeface;import android.util.AttributeSet;import android.util.Log;import android.widget.TextView;public class TextViewPlus extends TextView {    private static final String TAG = ""TextView"";    public TextViewPlus(Context context) {        super(context);    }    public TextViewPlus(Context context AttributeSet attrs) {        super(context attrs);        setCustomFont(context attrs);    }    public TextViewPlus(Context context AttributeSet attrs int defStyle) {        super(context attrs defStyle);        setCustomFont(context attrs);    }    private void setCustomFont(Context ctx AttributeSet attrs) {        TypedArray a = ctx.obtainStyledAttributes(attrs R.styleable.TextViewPlus);        String customFont = a.getString(R.styleable.TextViewPlus_customFont);        setCustomFont(ctx customFont);        a.recycle();    } public boolean setCustomFont(Context ctx String asset) {    Typeface tf = null;    try {    tf = Typeface.createFromAsset(ctx.getAssets() asset);      } catch (Exception e) {        Log.e(TAGCould not get typeface: ""+e.getMessage());        return false;    }    setTypeface(tf);      return true;}

}
attrs.xml:

<?xml version=""1.0"" encoding=""utf-8""?><resources>    <declare-styleable name=""TextViewPlus"">        <attr name=""customFont"" format=""string""/>    </declare-styleable></resources>

main.xml:

<?xml version=""1.0"" encoding=""utf-8""?><LinearLayout     xmlns:android=""http://schemas.android.com/apk/res/android""    xmlns:foo=""http://schemas.android.com/apk/res/com.example""    android:orientation=""vertical"" android:layout_width=""fill_parent""    android:layout_height=""fill_parent"">    <com.example.TextViewPlus        android:id=""@+id/textViewPlus1""        android:layout_height=""match_parent""        android:layout_width=""match_parent""        android:text=""@string/showingOffTheNewTypeface""        foo:customFont=""Chantelli_Antiqua.ttf"">    </com.example.TextViewPlus></LinearLayout>

你要把 ""Chantelli_Antiqua.ttf"" 放在 assets 文件夹中。

时间: 2024-12-25 03:29:02

fonts-如何使用自定义的字体文件?的相关文章

解决网页中使用自定义中文字体的方法

英文字体自定义 中文字体自定义 上面的两个图片例子,展示了自定义字体在网页里面的应用,这里不是浏览器的字体,也不是客户电脑里安装的字体,也不是图片或其他方式,而且是以文字的方式显示,这样做的好处是有的,最简单的好看啊,再比如可以方便修改,重要的是利于SEO优化.好处不多讲,先讲讲如何实现. 首先,要准备字体,要使用字体的三种文件格式,确保能在主流浏览器中都能正常显示该字体. 下面是几种主流浏览器对于字体格式的支持情况: .TTF或.OTF,适用于Firefox 3.5.Safari.Opera

CSS3用@font-face实现自定义英文字体

传说中的CSS3基本上什么都可以,那么CSS3中可不可以自定义英文字体呢?答案是非常可以.用@font-face即可实现自定义英文字体,下面有个不错的示例,感兴趣的朋友可以了解下   现在CSS3已经很流行了.传说中的CSS3基本上什么都可以,那么CSS3中可不可以自定义英文字体呢?答案是非常可以.用@font-face即可实现自定义英文字体,下面咱们一起去看看吧. 1.语法规则 复制代码 代码如下: @font-face { font-family: 自定义的字体名称; src: 自定义的字体

字体文件夹在哪

  一.字体文件夹在哪 字体文件夹一般都是在我们安装系统中的windows文件夹中的Fonts这个字体文件夹中,你可以打开这个文件夹,这时可以查看到系统中的各种字体,包括英文字体.中文字体,如果认为某些字体你认为不需要,可以按Delete键进行删除,如图所示: 二.如何安装字体 如果你认为你的电脑字体太少,需要安装更多的字体,那么你可以到网上下载字体,字体文件为TTF文件,也有整体打包的字体包,下载解压,然后就可以安装了,安装的方法有二种. 字体安装方法一:把ttf字体文件直接复制到字体文件夹中

Qt之字体文件(TTF)

简述 TTF(TrueTypeFont)是Apple公司和Microsoft公司共同推出的字体文件格式,随着windows的流行,已经变成最常用的一种字体文件表示方式. 在一些特殊的场合,系统字符集不包含你要用的字体,这时候,如甲骨文等古文字处理,一般在"系统盘\WINDOWS\Fonts"里,直接双击能查看是什么样的字体. 简述 Font Awesome 使用 效果 源码 更多参考 Font Awesome 我们以Font Awesome(完美的图标字体)为例,讲解如何在程序中使用字

让程序使用自带的字体文件

转载请说明原出处,谢谢~·http://blog.csdn.net/zhuhongshu/article/details/39396223         我笔记本使用的是win7系统,开发的duilib程序一直都使用微软雅黑字体,昨天在xp系统下测试时发现由于xp下没有微软雅黑字体而导致duilib使用了默认的宋体字,瞬间感觉界面不协调了.解决这个问题的方法就是让程序自带自己使用的字体,并且在运行时加载这个字体.以前从来没关心过这个问题.         比较简单的方法就是在程序运行时把字体文

教您纯Jsp的自定义的单个文件上载代码

js 本文是一个纯Jsp的自定义的单个文件上载代码: <%@ page contentType="text/html; charset=GBK" %> <%@ page import="java.io.*"%> <%@ page import="java.util.*"%> <%@ page import="javax.servlet.*"%> <%@ page impor

TTF字体文件怎么安装

  1.若TTF文件关联程序如果没有出错,可以直接双击TTF文件,就会弹窗字体预览安装界面,点击[安装]即可安装字体.若打不开请参考后面的解决方法. 2.字体安装成功后,[安装]按钮为灰色,直接点击右上角的X关闭即可. TTF字体文件打不开解决方法 问题再现 若双击打开TTF文件提示"该文件没有与之关联的程序来执行该操作.请安装一个程序,或者,如果已安装程序,请在"默认程序"控制面板中创建关联." 解决方法 1.在运行中打开Regedit.exe. 2.展开HKEY

Win7系统下安装TTF字体文件的方法

  解决方法: 1.如果TTF文件关联程序没有出错,可直接双击TTF文件,在弹出的字体预览安装界面中,点击"安装"按钮进行字体安装. 2.字体安装成功后,"安装"按钮为灰色,直接点击关闭即可; Win7系统下安装TTF字体文件的方法介绍到这里,安装之后我们可以选择自己喜爱的字体了.

win7系统如何自动安装TTF字体文件

  1.若TTF文件关联程序如果没有出错,可以直接双击TTF文件,就会弹窗字体预览安装界面,点击[安装]即可安装字体.若打不开请参考后面的解决方法.   2.字体安装成功后,[安装]按钮为灰色,直接点击右上角的X关闭即可.   TTF字体文件打不开解决方法 1.若双击打开TTF文件提示"该文件没有与之关联的程序来执行该操作. 2.请安装一个程序,或者,如果已安装程序,请在"默认程序"控制面板中创建关联."   解决方法: 1.在运行中打开Regedit.exe; 2