4

非常に巨大なアプリケーションを開発しましたが、アプリケーション内のすべてのコントロールにカスタム フォントを使用する必要があります。そのため、フォントを一発で変更するより良い方法を知りたいです。アプリケーションには、100 を超える XML レイアウトがあります。すべてのコントロールをカスタム フォントのカスタム コンポーネントに変更することはできません。XML のすべてのコントロールを変更せずにフォントを変更する解決策を提供してください。

4

1 に答える 1

11

このようなことをしてください

pacage com.prac;
class MyFontedTextView extends TextView {
    public FontedTextView(Context context) {
        super(context);
        init();
    }

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

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

    private void init() {
     String otfName = "MyCustomOtfFileWhichIPutInAssetsFolder.otf";
     Typeface font = Typeface.createFromAsset(context.getAssets(), otfName);
     this.setTypeface(font);
    }
}

これをTextViewsのxmlファイル全体で置き換えます

<com.prac.MyFontedTextView ....        instead of <TextView

この変更を適用するには、最初からやり直す必要があります

ボタンテキストの場合も同様です。ボタンも TextView のサブクラスなので、同じことがボタンにも適用できます

このヘルプまたは探しているソリューションにつながることを願っています

于 2012-04-30T18:29:10.777 に答える