56

私は1つのAndroidプロジェクトを開発しました。このプロジェクトでは、テキストフォントのデフォルトはandroid:sansです。

プロジェクト全体で、デフォルトのテキストフォントをrobotoフォントに置き換えたいと思います。

これどうやってするの?

4

5 に答える 5

64

Robotoフォントは、 https ://fonts.google.com/specimen/Robotoからダウンロードできます。[2020-01-28更新]

次のように、を使用して従来の方法でそれを行うことができますTypeFace

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

注:上記はすべてので実行する必要がありますActivity

または、たとえば、アプリケーション内のすべてのにRobotoフォントを適用する場合は、TextViewを拡張する独自のウィジェットを作成する必要がありますTextView

これを行う簡単な方法があります。SOでこの回答からの手順に従ってください:https ://stackoverflow.com/a/9199258/450534(解決策のためのレオカジオチンへの完全な小道具。私は以前にそれを使用しました、そしてそれは魅力のように機能します)

編集:あなたがyour_namespaceそれにあなたの選択の名前を与えるためのマーカーとして考えてください。たとえば、AdmobをXMLに統合するときは、を使用しますxmlns:ads。たとえば、次のxmlns:fontようなものを使用できます。

custom.ttfの略は、基本的には拡張子が付いたフォントファイルで、フォルダにコピーする必要がありますAssets。たとえば、ROBOTO-REGULAR.TTFを使用している場合は custom.ttfROBOTO -REGULAR.TTFに置き換えます。この例を使用すると、コード全体が次のようになります。

<your.package.widget.TypefacedTextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:font="http://schemas.android.com/apk/res/your.package"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Custom fonts in XML are easy"
    android:textColor="#FFF"
    android:textSize="14dip"
    font:typeface="ROBOTO-REGULAR.TTF" />
于 2012-11-24T09:03:22.313 に答える
23
  1. Robotoフォントzipファイルをダウンロードして解凍します

  2. assetsまだフォルダがない場合は、プロジェクトにフォルダを作成します。Android Studioを使用していると仮定すると、これがその方法です。 ここに画像の説明を入力してください

  3. アセットフォルダに新しいディレクトリを作成し、名前を付けますfont

  4. 解凍したファイルを開き、選択したフォントスタイルをコピーします。フォントフォルダは次のようになります。

ここに画像の説明を入力してください

これで、次のようにアプリのどこでもこのフォントを使用できます。

   Typeface roboto = Typeface.createFromAsset(context.getAssets(), 
  "font/Roboto-Bold.ttf"); //use this.getAssets if you are calling from an Activity
   txtView.setTypeface(roboto);
于 2015-07-29T09:56:48.840 に答える
6
txtView = (TextView) findViewById(R.id.txtView);

Typeface myTypeface = Typeface.createFromAsset(
                          this.getAssets(),
                          "font/Robot.otf");

txtView.setTypeface(myTypeface);
于 2012-11-24T09:09:00.740 に答える
6

Typerlibを使用すると、これを簡単に行うことができます。

このライブラリは、プロジェクトにフォントリソースを追加する複雑さをラップし、アプリのパフォーマンスを最大化するために、最近作成されたフォントをリサイクルします。

これをあなたに追加してくださいbuild.gradle

dependencies {
    compile 'com.elmargomez.typer:typerlib:1.0.0'
}

次に、フォントを使用できます

TextView txtView1 = (TextView) findViewById(R.id.yourTxtView1);
TextView txtView2 = (TextView) findViewById(R.id.yourTxtView2);
TextView txtView3 = (TextView) findViewById(R.id.yourTxtView3);
TextView txtView4 = (TextView) findViewById(R.id.yourTxtView4);

txtView1.setTypeface(Typer.set(yourContext).getFont(Font.ROBOTO_REGULAR));
txtView2.setTypeface(Typer.set(yourContext).getFont(Font.ROBOTO_CONDENSED_ITALIC));
txtView3.setTypeface(Typer.set(yourContext).getFont(Font.ROBOTO_THIN));
txtView4.setTypeface(Typer.set(yourContext).getFont(Font.ROBOTO_BOLD));

これには、Robotoの現在のすべてのフォントが含まれています。

    Font.ROBOTO_MEDIUM
    Font.ROBOTO_REGULAR
    etc.

使用可能なすべてのフォントを表示するには、クラスFontの後にAndroid StudioAutocompleteを使用してCtrl+を押しspaceます。

于 2015-09-14T09:14:33.183 に答える
3

関数の使用法についてもう1つ注意してTypeface.createFromAsset()ください。私がそれについて多くの電話をしたとき、それは膨張時間に大きな影響を与えました。この問題を克服するために、このTypefaceようなシングルトンインスタンスを作成しました

public static Typeface getTypeFace() {
        if (fromAsset == null) {
            fromAsset = Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Medium.ttf");
        }
        return fromAsset;
    }
于 2015-03-09T12:20:43.150 に答える