1

こんにちは私はTypeface次のコードで私のアプリでカスタムを使用しています:

public Typeface font;
//Activity on create:
 font = Typeface.createFromAsset(getAssets(),"DINOT-Medium.otf");

TextView tv = (TextView)vi.findViewById(R.id.textView1);
tv.setTypeface(font);

問題は、しばらくするとバグが発生することです。テキストが読み取れなくなり、正方形のみが表示されます。なぜこれが起こるのか知っていますか?どうすれば修正できますか?ありがとう

4

2 に答える 2

3

TextView次のようなカスタムを作成します。

public class DINOTMediumTextView extends TextView {

    public DINOTMediumTextView(Context context) {
        super(context);
        setCustomFont(context);
    }

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

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

    private void setCustomFont(Context context) {
        Typeface tf = Typeface.createFromAsset(context.getAssets(), "fonts/DINOT-Medium.otf");
        setTypeface(tf);
    }
}

フォントのファイルを入れますassets/fonts/( assets フォルダー内にフォルダーを作成します) 。

次に、レイアウト xml で:

<com.yourapp.views.DINOTMediumTextView 
   android:id="blabla"
   android:layout_width="match_parent"
   android:layout_height="wrap_content" />

com.yourapp.viewsDINOTMediumTextViewクラスを含むパッケージの名前です。

于 2012-11-28T12:12:29.567 に答える
1

Mobiletuts+ には、Android のテキスト書式設定に関する非常に優れたチュートリアルがあります。簡単なヒント: Android フォントをカスタマイズする

編集:今自分でテストしました。これが解決策です。fonts というサブフォルダーを使用できますが、res フォルダーではなく assets フォルダーに入れる必要があります。そう

assets/fonts

また、フォントファイル自体の末尾を意味するフォントの末尾がすべて小文字であることを確認してください。つまり、myFont.TTF ではなく、myFont.ttf にする必要があります。

于 2012-11-28T11:56:52.270 に答える