実行時に作成されるtextviewにフォントを設定する方法は?
テキストビューを作成しました
Textview tv = new TextView(this);
tv.setTextSize(20);
サイズを変更できるように
iフォントスタイルを「Verdana」に設定します。
これを行う方法??ししろ
まず、Font-faceを変更するには、 Typeface クラスを使用します。
さて、at Run-Time
、フォントフェースを設定するには、setTypeface(Typeface)
Javaコードから
at Design-Time
、フォントフェースを設定するには、Android:typeface="serif"
例えば:
<TextView Android:text="@+id/TextView01"
Android:id="@+id/TextView01"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textSize="30px"
Android:textStyle="italic"
Android:typeface="serif" />
これを行うには、プロジェクトのルートにasset /フォルダーを作成し、アセットにフォント(TrueTypeまたはTTF形式)を配置します。たとえば、assets/fonts/
を作成し、そこにTTFファイルを配置します。
TextView tv=(TextView)findViewById(R.id.custom);
Typeface face=Typeface.createFromAsset(getAssets(), "fonts/HandmadeTypewriter.ttf");
tv.setTypeface(face);
アセットフォルダに.ttfフォントを含めることができます。フォントの名前が「default.ttf」であり、2行のコードを記述する必要があるとします
TextView text = new TextView(this);
text.setTypeface(Typeface.createFromAsset(getAssets(), "default.ttf"));
フォントごとにサイズが異なるため、注意が必要です。サイズを次のように設定する必要がある場合があります。
text.setTextSize(20);
XMLのフォント in Android 8.0(APIバージョン14との下位互換性))の導入により、xml自体からフォントを設定するのが非常に簡単になりました。
Androidドキュメントから:
Android 8.0(APIレベル26)には、フォントをリソースとして使用できるXMLのフォントという新機能が導入されています。 res/font /フォルダーにフォントファイルを追加して、フォントをリソースとしてバンドルできます。これらのフォントはRファイルでコンパイルされ、Android Studioで自動的に使用可能になります。新しいリソースタイプであるフォントを使用してフォントリソースにアクセスできます。たとえば、フォントリソースにアクセスするには、@ font/myfont、またはR.font.myfontを使用します。
まず、fontという名前のres
フォルダーにAndroid Resource Directoryを作成します
。ttfフォントファイルをそのディレクトリに追加し、フォントファミリを作成します
フォントファミリは、スタイルと重量の詳細とともにフォントファイルのセットです。 Androidでは、各フォントとスタイルを個別のリソースとして参照する代わりに、XMLフォントとして新しいフォントファミリを作成し、単一のユニットとしてアクセスできます。これにより、システムは使用しようとしているテキストスタイルに基づいて正しいフォントを選択できます。
フォントファミリを作成するには、Android Studioで次の手順を実行します。
<font>
要素で各フォントファイル、スタイル、および重量属性を囲みます。次のXMLは、フォント関連の属性をフォントリソースXMLに追加する方法を示しています。
<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:Android="http://schemas.Android.com/apk/res/Android"> <font Android:fontStyle="normal" Android:fontWeight="400" Android:font="@font/lobster_regular" /> <font Android:fontStyle="italic" Android:fontWeight="400" Android:font="@font/lobster_italic" /> </font-family>
次に、次のコードを使用してtextView
にフォントを設定します
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:fontFamily="@font/lobster"/>
ここに小さなユーティリティクラスがあります
public class TypefaceHelper {
public static void setViewGroupTypeface(ViewGroup container, Typeface typeface) {
final int children = container.getChildCount();
for (int i = 0; i < children; i++)
View child = container.getChildAt(i);
if (child instanceof TextView) {
setTextViewTypeface((TextView) child, typeface);
} else if (child instanceof ViewGroup) {
setViewGroupTypeface((ViewGroup) child, typeface);
}
}
}
public static void setTextViewTypeface(TextView textView, Typeface typeface) {
textView.setTypeface(typeface);
}
}
アダプタから子を生成するSpinner
sまたはListView
s(つまり、あらゆる種類のAdapterView
)のようなものについては、アダプタのView
(または同様の)メソッドで各項目getView
のタイプフェイスを設定する必要があります。これは、ビューが必要に応じて作成される可能性があるため、Typeface
のonCreate
の設定が正しく機能しないためです。
Typeface を使用する必要があります:
そのフォントを使用して書体オブジェクトを作成します。
Typeface myFont = Typeface.createFromAsset(getAssets(), "fonts/MyFont.ttf");
書体をカスタマイズするオブジェクトに設定します。
TextView myTextView = (TextView)findViewById(R.id.my_text_view); myTextView.setTypeface(myFont);
これを使用して、xml:でAndroid:fontFamilyのようなフォントファミリを動的に設定できます。
For Custom font:
TextView tv = ((TextView) v.findViewById(R.id.select_item_title));
Typeface face=Typeface.createFromAsset(getAssets(),"fonts/mycustomfont.ttf");
tv.setTypeface(face);
For Default font:
tv.setTypeface(Typeface.create("sans-serif-medium",Typeface.NORMAL));
これらはdefault font使用されるファミリのリストです。二重引用符文字列" sans-serif-medium "
FONT FAMILY TTF FILE
1 casual ComingSoon.ttf
2 cursive DancingScript-Regular.ttf
3 monospace DroidSansMono.ttf
4 sans-serif Roboto-Regular.ttf
5 sans-serif-black Roboto-Black.ttf
6 sans-serif-condensed RobotoCondensed-Regular.ttf
7 sans-serif-condensed-light RobotoCondensed-Light.ttf
8 sans-serif-light Roboto-Light.ttf
9 sans-serif-medium Roboto-Medium.ttf
10 sans-serif-smallcaps CarroisGothicSC-Regular.ttf
11 sans-serif-thin Roboto-Thin.ttf
12 serif NotoSerif-Regular.ttf
13 serif-monospace CutiveMono.ttf
「mycustomfont.ttf」はttfファイルです。 Pathはsrc/assets/fonts/mycustomfont.ttf