2012-11-16 15 views
18

Androidアプリを作成していて、自分のアプリのテーマを変更したいと考えています。Androidアプリのスタイルとテーマのテキストの外観を変更する

私はテーマの使用によってアプリケーションの背景色を変更することができましたが、私はデフォルトのテキストの外観を変更しようとしています。

これは私のです。styles.xmlリソースファイルです。

<resources> 
    <style name="QTheme" parent="android:Theme.Light"> 
     <item name="android:windowBackground">@color/q_green</item> 
     <item name="android:colorBackground">@color/q_green</item> 
     <item name="android:textAppearance">@style/QText</item> 
    </style> 

    <color name="q_green">#008000</color> 
    <color name="white">#FFFFFF</color> 

    <style name="QText" parent="@android:style/TextAppearance.Medium"> 
     <item name="android:textSize">20sp</item> 
     <item name="android:textColor">@color/white</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textFont">Verdana</item> 
    </style> 
</resources> 

だけチェックする、これは私が私のレイアウトファイルに上記のスタイルを使用したい私のTextViewsの1の例です。

<TextView 
    android:id="@+id/txtDevice" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:text="@string/device" 
/> 

どこに間違っているのか誰にでも見える?

+6

テーマの 'TextAppearance.Medium'スタイルをオーバーライドしました(' TextView'は変更されません)。 'TextView'の外観を変更したい場合は、あなたのテーマの' textViewStyle'スタイル属性をオーバーライドしてください。あるいは、あなたは 'android:textAppearance'を使ってカスタムスタイルを適用することができます – Luksprog

+0

ありがとう。アイテム名をandroid.textViewStyleに変更しました。そのトリックを行うように見えました。それは私のスピナー内のテキストを変更しましたが、私のテキストビューだけではありません。差別化の方法はありますか? –

+0

わかりません。もし私が間違っていないのであれば、 'Spinner'の' TextView'アイテムはテーマの 'spinnerItemStyle'属性が指す別のスタイル(' TextView'スタイルから継承します)を持っています。これを '@android:style/Widget.TextView.SpinnerItem'に設定して、それがどのようになっているのか見てみてください。 – Luksprog

答えて

36

完全性とLusprogへの完全な信用のため、これは私のものですリソースファイル

<resources> 
    <style name="QTheme" parent="android:Theme.Light"> 
     <item name="android:windowBackground">@color/q_green</item> 
     <item name="android:colorBackground">@color/q_green</item> 
     <item name="android:textViewStyle">@style/QText</item> 
    </style> 

    <color name="q_green">#008000</color> 
    <color name="white">#FFFFFF</color> 

    <style name="QText" parent="@android:style/TextAppearance.Medium"> 
     <item name="android:textSize">20sp</item> 
     <item name="android:textColor">@color/white</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:typeface">sans</item> 
    </style> 
</resources> 

また、フォントヘルプのPadma Kumarに感謝します。

+0

変更した内容は?アンドロイド:書体以外! –

+0

@ style/QText

+0

あなたは私にアンドロイドを教えてください:textViewStyleはこの属性はアンドロイドにありますか? –

1

//あなたが//スタイル

をsetttingため

<item name="android:typeface">monospace</item> 

をフォントスタイルを変更するための書体を与えることができます。//この

<item name="android:textFont">Verdana</item> 

のような属性がない、あなたのスタイル からこの行を削除

<TextView 
    android:id="@+id/txtDevice" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    style="@style/QText" 
    android:text="@string/device" 
/> 
+2

私はテーマにスタイルを追加できるので、すべてのテキストにスタイルを設定する必要はありません。 –

+0

いいえ、xmlでフォントスタイルを設定することはできません。コードで書体を設定する必要があります。 –

+0

そのスタイルをTextViewに追加すると機能しません –

関連する問題