8

でカスタム フォントを使用しようとしていTextViewます。TextViewテキストはtextView1.setText(Html.fromHtml(htmlText));

HTML に太字と斜体のスパンが含まれている

今。カスタムフォントを購入しました。フォントには 3 つの異なるファイル (ttf) が付属しています。1 つは通常用、もう 1 つは太字、イタリック用です。

これら3つのフォントファイルをテキストビューに適用するにはどうすればよいですか?

4

4 に答える 4

1

このリンクは、Android フォントをカスタマイズする方法を確認するのに役立ちます: http://mobile.tutsplus.com/tutorials/android/customize-android-fonts/

これらのフォント ファイルをテキストビューに適用する方法に関しては、最初にそれらをプロジェクトに統合する必要があります。

Typeface tf = Typeface.createFromAsset(this.getAssets(),
        "fonts/xxx.TTF");
txt1.setTypeface(tf);

ttf ファイルは --> assets/fonts/xxx.TTF に配置する必要があります。

必要なすべての詳細は、「カスタム フォントの使用」の段落にあります。

于 2013-01-28T13:30:18.810 に答える
1

v26 以上のサポート ライブラリまたは新しい AndroidX ライブラリを使用している場合、API 16+ の現時点での最善の方法は、フォント リソース ファイルを定義することです。基本的には、fonts フォルダーに通常および斜体の ttf フォント ファイルを追加し、フォント リソース xml を作成します。そして基本的にそれを次のようにします

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:app="http://schemas.android.com/apk/res-auto">
<font
    app:fontStyle="normal"
    app:fontWeight="400"
    app:font="@font/custom_regular_font" />
<font
    app:fontStyle="italic"
    app:fontWeight="400"
    app:font="@font/custom_italic_font" />
<font
    app:fontStyle="normal"
    app:fontWeight="700"
    app:font="@font/custom_bold_font" />
</font-family>

最後の 1 つは太字のフォント用です。この xml を適用します。custom_font_family.xml をテキストビューに android:fontFamily="@font/custom_font_family" として想定します。これで、3 つのスパン タイプのいずれかで fromHtml を使用して設定した HTML テキストは適切なフォントを使用します。 、必要に応じて、これにより、完全に異なるフォントを混合したカスタム フォント ファミリを使用することもでき、文字通り同じファミリに属している必要はありません。

于 2019-02-28T19:22:30.603 に答える
0

そのすべてのフォントを同じ textView のテキストに 1 つずつ適用してみましたか。これで、同じ TextView により多くの効果を適用できると思います。

ミロスのコードは正しい。さらに、私は私自身の説明を入れました。フォントをアセット フォルダーに追加できます。その後、そのフォントを 1 つずつ textView に適用できます。

確かではありませんが、あなたに役立つかもしれません。

私のコード:

Typeface font1 = Typeface.createFromAsset(getAssets(), "YOUR_FONT1.ttf");
Typeface font2 = Typeface.createFromAsset(getAssets(), "YOUR_FONT2.ttf");
Typeface font3 = Typeface.createFromAsset(getAssets(), "YOUR_FONT3.ttf");

chips_text.setTypeface(font1);
chips_text.setTypeface(font2);
chips_text.setTypeface(font3);

コメントや質問はお気軽に。

于 2013-02-04T13:03:56.253 に答える
0

アセットを組み込むために、コードを簡単にリファクタリングしたいと考えていると思います。

TextView を拡張して、HTML を解析し、onDraw で適切な書体を適用しようとします。

パラメーターをオーバーライドsetTextして解析し、使用する文字と適切な書体のマップを作成します。

次に、オーバーライドして描画する前に、前の手順で作成したマップに合わせてonDrawの書体を変更します。super.getPaint()

コードは、TextView の拡張クラスでテキストを正しく描画するonDraw方法の方法で提示されたものと同じように見えるはずです。、ただし、適用する代わりに、以前に決定された書体を設定します。super.getTypeface()

それがあなたを助けることを願っています

于 2013-02-04T13:02:04.397 に答える