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?
Changing the style after creating the view is not supported .. so what you can do is: create a new android xml file of type values. add new theme. add your elements to that theme and their values and save the file.
In Android Studio, open themes. xml (app > res > values > themes > themes.
A style is a collection of attributes that specify the appearance for a single View . A style can specify attributes such as font color, font size, background color, and much more. A theme is a collection of attributes that's applied to an entire app, activity, or view hierarchy—not just an individual view.
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.
//remove this line from your styles there is no attribute like this
<item name="android:textFont">Verdana</item>
//you can give typeface for changing font style
<item name="android:typeface">monospace</item>
//for settting the styles
<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" />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With