web-dev-qa-db-ja.com

実行時にフォントを設定、Textview

実行時に作成されるtextviewにフォントを設定する方法は?

テキストビューを作成しました

Textview tv = new TextView(this);      
tv.setTextSize(20);

サイズを変更できるように
iフォントスタイルを「Verdana」に設定します。

これを行う方法??ししろ

38
iscavengers

実行時に組み込みフォントを設定するには:

  • まず、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" />

Androidアプリケーションでカスタムフォントを設定するには

これを行うには、プロジェクトのルートにasset /フォルダーを作成し、アセットにフォント(TrueTypeまたはTTF形式)を配置します。たとえば、assets/fonts/を作成し、そこにTTFファイルを配置します。

  TextView tv=(TextView)findViewById(R.id.custom); 
  Typeface face=Typeface.createFromAsset(getAssets(), "fonts/HandmadeTypewriter.ttf"); 
  tv.setTypeface(face); 
67
Paresh Mayani

アセットフォルダに.ttfフォントを含めることができます。フォントの名前が「default.ttf」であり、2行のコードを記述する必要があるとします

TextView text = new TextView(this);
text.setTypeface(Typeface.createFromAsset(getAssets(), "default.ttf"));

フォントごとにサイズが異なるため、注意が必要です。サイズを次のように設定する必要がある場合があります。

text.setTextSize(20);
4
Dilroop Singh

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で次の手順を実行します。

  1. フォントフォルダを右クリックして、New> Font resource fileに移動します。 [新しいリソースファイル]ウィンドウが表示されます。
  2. ファイル名を入力し、[OK]をクリックします。新しいフォントリソースXMLがエディターで開きます。
  3. <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"/>
2
Rahul Sharma

ここに小さなユーティリティクラスがあります

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);
    }

}

アダプタから子を生成するSpinnersまたはListViews(つまり、あらゆる種類のAdapterView)のようなものについては、アダプタのView(または同様の)メソッドで各項目getViewのタイプフェイスを設定する必要があります。これは、ビューが必要に応じて作成される可能性があるため、TypefaceonCreateの設定が正しく機能しないためです。

2
Joseph Earl

Typeface を使用する必要があります:

  1. プロジェクトにアセットとして使用するフォントを追加します。
  2. そのフォントを使用して書体オブジェクトを作成します。

    Typeface myFont = Typeface.createFromAsset(getAssets(), "fonts/MyFont.ttf");

  3. 書体をカスタマイズするオブジェクトに設定します。

    TextView myTextView = (TextView)findViewById(R.id.my_text_view); myTextView.setTypeface(myFont);

1
Asahi

これを使用して、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ファイルです。 Pathsrc/assets/fonts/mycustomfont.ttf

0
anand krish