如何将ttf文件用于按钮的文本?

时间:2011-01-04 06:14:57

标签: android

如何将ttf文件用于按钮的文本?

4 个答案:

答案 0 :(得分:5)

这是否意味着您必须更改按钮的字体?

Context context = textView.getContext();
    helvetica_normal = Typeface.createFromAsset(context.getAssets(),
            "fonts/helvetica.ttf");
    textView.setTypeface(helvetica_normal);

这是将文本视图的字体更改为android默认为helvetica的代码。 当Button扩展Text视图时,您可以直接使用此代码而无需任何修改,对于按钮,文本视图以及我也没有错误的旋转器。

注意:假设您已将字体的ttf文件复制到您的assests文件夹。

答案 1 :(得分:1)

在整个活动中应用它的一个方便简单的例程是在onCreate()中的setContentView()之后调用以下内容。在Adapter.getView()

中也很有用
static Typeface typeface = null;
static void ApplyOurFont(Context context,ViewGroup vg)
{
    if (typeface==null)
        typeface = Typeface.createFromAsset(context.getAssets(),"ourfont.ttf");
    int cnt = vg.getChildCount();
    for (int i=0;i<cnt;++i)
    {
        View v = vg.getChildAt(i);
        if (v instanceof TextView)
        {
            TextView tv = (TextView)v;
            tv.setTypeface(typeface);
        }
        if (v instanceof ViewGroup)
        {
            ApplyOurFont(context,(ViewGroup)v);
        }
    }
}

答案 2 :(得分:0)

基于Prahams Post,我刚刚在课堂上使用了代码片段。我刚刚创建了两个完成所有工作的方法,所以你只需将每个元素传递给方法,它就会以特定的ttf-font创建。

我在班级

的开头创建了一个变量
Typeface typeface;

然后你必须将实例化的元素传递给方法

setFont(anyElement);

这里有两种方法可以完成这项工作。在“setFont”内部将调用第二个方法“getFontFromAsset”,因此如果需要,可以在一个位置更改字体。

private void setFont(TextView element){
    Context context = element.getContext();     
    element.setTypeface(getFontFromAsset(context));     
}

private Typeface getFontFromAsset(Context context){     
    typeface = Typeface.createFromAsset(context.getAssets(), "beware.ttf");
    return typeface;
}

或者使其更有用,将其提供给新类。比只有一个地方设置字体,你只需要在你的活动中初始化这个类,并通过FontClass方法传递元素。

这是我的FontClass

package xandru.cea;

import android.content.Context;
import android.graphics.Typeface;
import android.widget.TextView;

public class FontClass {

    Typeface typeface;

    public FontClass(){

    return;     
    }

    public void setFont(TextView element){
    Context context = element.getContext();     
        element.setTypeface(getFontFromAsset(context));     
    }

    private Typeface getFontFromAsset(Context context){     
        typeface = Typeface.createFromAsset(context.getAssets(), "beware.ttf");
        return typeface;
    }
}

比初始班:

FontClass fontClass = new FontClass();

并传递元素:

fontClass.setFont(anyElement);

答案 3 :(得分:0)

您可以在此处查看示例:http://androideity.com/wp-content/uploads/2011/08/fuentes14.png

只需将customFont更改为您的按钮。