Resフォルダーのどこにフォントファイル(TTF)を置くべきですか?
フォントはアセットフォルダー(つまり、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" />
カスタムフォントを使用
最初のステップは、使用するフォントを選択することです。
次に、アセットディレクトリにFontsフォルダを作成し、そこにフォントをコピーします。
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);
}
}
あなたは結果を見ることができます:
resフォルダーではなく、assetsフォルダーのどこかにあります。次に、createFromAsset
からTypeface
静的メソッドを使用できます。
Android Studio 1.5.1現在、次のことができます。
app
ディレクトリを右クリックしますNew
> Folder
(これはリストの一番下にあり、見逃しがちです)> Assets Folder
assets
フォルダーにファイルを移動します