4

私はぐるぐる回っていますが、これに対する解決策は見つかりませんでした。

TextViewこのようにプログラムでフォントを変更できることを知っていview.setTypeface(Typeface.createFromAsset(getAssets(),"dejavusans.ttf"));ます。

しかし、xmlファイルで直接行う方法はありませんか? 属性を見つけましandroid:typefaceたが、"normal"、"sans、"serif"、"monospace" のオプションしかありません。このフォントを使用するにはどうすればよい/assets/fonts/Roboto-Regular.ttfですか?

ありがとう。

4

1 に答える 1

9

これを行うことができるライブラリプロジェクトを作成しました。それはニフティと呼ばれています: https://github.com/tom-dignan/nifty

nifty を使用すると、styles.xml ファイルからアセット ディレクトリに書体を指定するか、XML レイアウトで直接属性として指定できます。XML で書体を指定する機能を除いて、親クラスのすべての機能を継承するカスタムNiftyTextViewおよびを提供します。NiftyButton

例のスタイル:

<style name="MyStyle" parent="@android:style/Theme">
        <item name="typeface">my_font_that_is_in_assets.ttf</item>
</style>

XML の例:

 <com.tomdignan.nifty.NiftyTextView
        android:id="@+id/title"
        style="@style/MyStyle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />    

または、スタイルを使用していない場合:

 <com.tomdignan.nifty.NiftyTextView
            xmlns:nifty="http://schemas.tomdignan.com/nifty"
            nifty:typeface="my_font_that_is_in_assets.ttf"
            android:id="@+id/title"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />  

気の利い

警告: カスタム ビューは、レイアウト エディターでプレビューできません。これを回避する私の方法は、検索/置換を使用することです。

于 2012-05-06T23:32:34.353 に答える