2016-01-03 18 views
7

英語以外の言語でアプリを作りたいです。ですから、私は英語以外の言語でテキストビュー、ストリング、トーストが必要です。すべてのテキストの書体を設定するのは面倒です。デフォルトのフォントを設定する方法はありますか?英語のもの(電子メールIDなど)を参照する必要があるときは、textview.settypeface(xyz)メソッドを使用できます。アンドロイドアプリのデフォルトフォントを変更するには?

+0

このリンクを試すことができますhttps://coderwall.com/p/qxxmaa/android-use-a-custom-font-everywhere –

答えて

9

カスタムフォントのための格子ライブラリはアンドロイドである:ここではcustom fonts

はそれを使用する方法のサンプルです。

compile 'uk.co.chrisjenx:calligraphy:2.1.0' 

してから、アプリケーションを拡張するクラスを作るANこのコードを書く:あなたはこの行を配置する必要がありGradleので

public class App extends Application { 
@Override public void onCreate() { super.onCreate(); 

CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() 
       .setDefaultFontPath("your font path") 
       .setFontAttrId(R.attr.fontPath) 
       .build() 
); 
} 

}

とアクティビティクラスでonCreateの前にこのメソッドを配置します。

@Override 
protected void attachBaseContext(Context newBase) { 
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); 

と、このようなマニフェストファイルの書き込みの最後の事:

<application 
android:name=".App" 

、それはあなたのフォントに全体の活動を変更します!私はシンプルで清潔です!

+1

詳細な手順はありがとうございます。素晴らしい図書館。 – suku

+1

ライブラリーを作った人のビデオは以下のとおりです。https://www.youtube.com/watch?v=WZkZVCWxIXs – suku

+2

ありがとうございました。あなたは私を救います。 –

1

これは主に3つの方法で実現できます。カスタムのTextViewを作成して、どこにでもいることを指すことであろう一つの方法は、すなわち:

public class TypefacedTextView extends TextView { 

    public TypefacedTextView(Context context, AttributeSet attrs) { 
     super(context, attrs); 

     Typeface typeface = Typeface.createFromAsset(context.getAssets(), fontName); 
     setTypeface(typeface); 
    } 
} 

とView.xml

<packagename.TypefacedTextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Hello"/> 

内部にもう一つの方法は、githubのに強力なCalligraphyライブラリを使用することです。 see this

そして最後に、あなたはあなた自身のフォントをデフォルト値を上書きすることができ、see this

関連する問題