5

ウィジェットTypefaceでアセットからロードされたフォント定義を何らかの方法で使用することは可能ですか?EditText

4

6 に答える 6

4

使用するフォントは assets/fonts ディレクトリに存在する必要があり、次のようにアクセスします。

Typeface myFont = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");
edittext.setTypeface(myFont);
于 2012-12-21T12:03:22.717 に答える
0
editText.setTypeface(Typeface.createFromAsset(context.getAssets(),"fonts/myfont.ttf"));

次のようなファイル構造があると仮定します。

/assets/fonts/myfont.ttf

于 2012-12-21T11:58:53.967 に答える
0

それについては以下のコードを参照してください、それはあなたの問題を解決します。

// text view label
TextView mTextView1 = (TextView) findViewById(R.id.TextView1);

// Loading Font Face
Typeface tf = Typeface.createFromAsset(getAssets(), "DroidSansFallback.ttf");

// Applying font
mTextView1.setTypeface(tf);

詳細については、以下のリンクを参照してください。

Android開発–Androidフォントをカスタマイズする

于 2012-12-21T11:58:54.033 に答える
0
 Typeface tf   =    Typeface.createFromAsset(getAssets(),"fonts/Comic.ttf");
 youredittext.setTypeface(tf);

私は今これを試しました。それは私のために働いた。幸運を

于 2012-12-21T12:05:22.817 に答える
0

これを実装し、すべてのテキストビューにフォントを追加しないようにする他のより良い形式は、TextView (または EditText または ...) を拡張し、setTypeface メソッドにフォントを適用することです。この方法を使用すると、太字、斜体、およびその他のスタイルを制御できます。

TextView を拡張して Roboto フォントを適用するクラスのコードを次に示します。さらに、HTML から Spannable を設定するときに、Android 4.0 が HTML コードで持ついくつかのバグを制御します。

public class TextViewRoboto extends TextView {  
public static final String TAG = "TextViewRoboto";

public TextViewRoboto(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

public TextViewRoboto(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public TextViewRoboto(Context context) {
    super(context);
}

@Override
public void setTypeface(Typeface tf, int style) {

    //This is to override eclipse error messages
    if (!super.isInEditMode()) {      

        if (style == Typeface.BOLD)  
            super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Bold.ttf"));
        else if (style == Typeface.ITALIC)
            super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Italic.ttf"));
        else
            super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Regular.ttf"));    
    }    
}


//
// With this code aboid the <b> and <strong> problem on Jelly Bean
//

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    try{
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }catch (ArrayIndexOutOfBoundsException e){
        //Logger.w(TAG, "Problem onMeasure. Set normal text");
        setText(getText().toString());
        super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
    }
}   
@Override
public void setGravity(int gravity){
    try{
        super.setGravity(gravity);
    }catch (ArrayIndexOutOfBoundsException e){
        //Logger.w(TAG, "Problem setGravity. Set normal text");
        setText(getText().toString());
        super.setGravity(gravity); 
    }
}
@Override
public void setText(CharSequence text, BufferType type) {
    try{
        super.setText(text, type);
    }catch (ArrayIndexOutOfBoundsException e){
        //Logger.w(TAG, "Problem on setText. Set normal text");
        setText(text.toString());
    }
}

public void setHTMLText(CharSequence text, BufferType type) {
    String tmpText = text.toString();
    if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        tmpText = tmpText.replace("<strong>", "<b>");
        tmpText = tmpText.replace("</strong>", "</b>");
        tmpText = tmpText.replace("<em>", "<i>");
        tmpText = tmpText.replace("</em>", "</i>");
        text = tmpText;
    }

    try{
        super.setText(Html.fromHtml(tmpText), type);
    }catch (ArrayIndexOutOfBoundsException e){
        //Logger.w(TAG, "Problem on setText. Set normal text");
        setText(text.toString());
    }
}
}
于 2012-12-21T12:23:18.513 に答える
-1

これを使用できます

editText.setTypeface(Typeface.SERIF);
于 2012-12-21T11:51:21.840 に答える