web-dev-qa-db-ja.com

フォントファイルはAndroidリソースのどこに配置すればよいですか?

Resフォルダーのどこにフォントファイル(TTF)を置くべきですか?

19
user1019901

フォントはアセットフォルダー(つまり、asset/fonts/roboto.ttf)に作成できます。

次に、TextViewに適切なクラスを作成します。

// RobotoFont class
package com.my.font;
public class RobotoFont  extends TextView {
    public RobotoFont(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
    public RobotoFont(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public RobotoFont(Context context) {
        super(context);
    }
    public void setTypeface(Typeface tf, int style) {
        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"));
        }
    }
}

最後に、レイアウトを更新します。

//main.xml
//replace textview with package name com.my.font.RobotoFont
<com.my.font.RobotoFont
      Android:layout_width="wrap_content"
      Android:layout_height="wrap_content"
      Android:paddingBottom="2dip" />
10
Munish Kapoor

カスタムフォントを使用

最初のステップは、使用するフォントを選択することです。

次に、アセットディレクトリにFontsフォルダを作成し、そこにフォントをコピーします。

enter image description here

NB:フォントはasssetsフォルダーのどこにでも置くことができますが、これが私のやり方です!!

セットアップは以上です。コードについて説明します。

カスタムフォントにアクセスするには、Android SDKのTypefaceクラスを使用して、Androidが使用できる書体を作成し、次のような表示要素を設定する必要があります。カスタムフォントを適切に使用する必要があります。例として、メイン画面に2つのテキストビューを作成できます。1つはデフォルトのAndroid Sansフォントを使用し、もう1つはカスタムフォントを使用します。レイアウトは以下のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:orientation="vertical"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent">
    <TextView
        Android:id="@+id/DefaultFontText"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:textSize="30sp"
        Android:text="Here is some text." />
    <TextView
        Android:id="@+id/CustomFontText"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:textSize="30sp"
        Android:text="Here is some text.">
        </TextView>
</LinearLayout>

カスタムフォントをロードして設定するコードも簡単で、以下に示します。

public class Main extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Typeface tf = Typeface.createFromAsset(getAssets(),
                "fonts/BPreplay.otf");
        TextView tv = (TextView) findViewById(R.id.CustomFontText);
        tv.setTypeface(tf);
    }
}

あなたは結果を見ることができます:

enter image description here

17
K_Anas

resフォルダーではなく、assetsフォルダーのどこかにあります。次に、createFromAssetからTypeface静的メソッドを使用できます。

http://developer.Android.com/reference/Android/graphics/Typeface.html#createFromAsset%28Android.content.res.AssetManager,%20Java.lang.String%29

5
K-ballo

Android O なので、fontsresourcesフォルダーを作成し、xmlで直接使用できます。
新しいものをチェックしてください Android O -フォント機能

4
Volodymyr Kulyk

Android Studio 1.5.1現在、次のことができます。

  1. appディレクトリを右クリックします
  2. New> Folder(これはリストの一番下にあり、見逃しがちです)> Assets Folder
  3. ほとんどの場合、フォルダの場所をデフォルトのままにしておくことができます> [完了]をクリックします
  4. 新しく作成したassetsフォルダーにファイルを移動します
2
mumush