Changing the text appearance in styles and themes for an Android app

Pippa Rose Smith picture Pippa Rose Smith · Nov 16, 2012 · Viewed 68.7k times · Source

I am writing an android app and I am wanting to alter the theme of my app.

I have managed to alter the background colour of the app by using a theme, but I am struggling to change the default text appearance.

This is my styles.xml resource file.

<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>

and just to check, this is an example of one of my TextViews I want to use the above style in my layout file.

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

Can anyone see where I am going wrong?

Answer

Pippa Rose Smith picture Pippa Rose Smith · Nov 16, 2012

Just for completeness, and full credit to Lusprog, this is now my resources file

<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>

Also thanks to Padma Kumar for the font help.