私はアプリで Roboto ライト フォントを使用しています。フォントを設定するには、android:fontFamily="sans-serif-light"
すべてのビューに追加する必要があります。Roboto フォントをアプリ全体のデフォルトのフォント ファミリとして宣言する方法はありますか? このように試してみましたが、うまくいかないようです。
<style name="AppBaseTheme" parent="android:Theme.Light"></style>
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:fontFamily">sans-serif-light</item>
</style>
ベストアンサー1
答えはイエスです。
グローバルRobotoライトTextView
とButton
クラス:
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:textViewStyle">@style/RobotoTextViewStyle</item>
<item name="android:buttonStyle">@style/RobotoButtonStyle</item>
</style>
<style name="RobotoTextViewStyle" parent="android:Widget.TextView">
<item name="android:fontFamily">sans-serif-light</item>
</style>
<style name="RobotoButtonStyle" parent="android:Widget.Holo.Button">
<item name="android:fontFamily">sans-serif-light</item>
</style>
リストから希望のスタイルを選択するだけですテーマ.xml次に、元のスタイルに基づいてカスタム スタイルを作成します。最後に、そのスタイルをアプリケーションのテーマとして適用します。
<application
android:theme="@style/AppTheme" >
</application>
これは Roboto のような組み込みフォントでのみ機能しますが、それが問題でした。カスタム フォント (たとえば、アセットから読み込まれたフォント) の場合、この方法は機能しません。
編集 08/13/15
AppCompat テーマを使用している場合は、android:
プレフィックスを削除することを忘れないでください。例:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:textViewStyle">@style/RobotoTextViewStyle</item>
<item name="buttonStyle">@style/RobotoButtonStyle</item>
</style>
buttonStyle
には接頭辞が含まれていませんandroid:
が、必ず含まれている必要があることに注意してくださいtextViewStyle
。