Android UI Themes Tutorial
Introduction #
This tutorial will familiarize you with the theme-ing capabilities of Android API. You can set background color, image, etc. on widgets. However, there are some customizations that can only be performed by using the theme-ing facility. Examples of this include change the colors/images of a top-level window like an Activity or Dialog.
Defining themes in XML #
Here’s an example of defining a theme in XML, this goes in the styles.xml file in the
<your project>/res/values/styles.xml
file; you can define colors, drawables, and lots of other
resources here that get referenced in your theme:
<resources>
<!-- Base application theme is the default theme. -->
<style name="Theme" parent="android:Theme">
</style>
<!-- Variation on our application theme that has a translucent
background. -->
<style name="Theme.Translucent">
<item name="android:windowBackground">@drawable/translucent_background</item>
<item name="android:windowNoTitle">true</item>
<item name="android:colorForeground">#fff</item>
</style>
<!-- Variation on our application theme that has a transparent
background; this example completely removes the background,
allowing the activity to decide how to composite. -->
<style name="Theme.Transparent">
<item name="android:windowBackground">@drawable/transparent_background</item>
<item name="android:windowNoTitle">true</item>
<item name="android:colorForeground">#fff</item>
</style>
<style name="TextAppearance.Theme.PlainText"
parent="android:TextAppearance.Theme">
<item name="android:textStyle">normal</item>
</style>
</resources>
This is how you reference this theme in an Activity:
public class WidgetActivity extends Activity {
@Override protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
Log.i(Global.TAG2,
"sub-Activity WidgetActivity being creation: start");
setTheme(R.style.Theme_Translucent);
setContentView(Panel2Builder.createWidgetPanel(this));
Log.i(Global.TAG2,
"sub-Activity WidgetActivity being creation: end");
}
}//end class WidgetActivity
The Android SDK Manual has a lot more information on styles and themes and how assets and content are used and created.
👀 Watch Rust 🦀 live coding videos on our YouTube Channel.
📦 Install our useful Rust command line apps usingcargo install r3bl-cmdr
(they are from the r3bl-open-core project):
- 🐱
giti
: run interactive git commands with confidence in your terminal- 🦜
edi
: edit Markdown with style in your terminalgiti in action
edi in action