You can simply define different styles for the different colors or drawings needed for each type of widget, and refer to those of your various themes. For instance:
<style name="MyTheme" parent="android:style/Theme.Light">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/something</item>
<item name="android:buttonStyle">@style/MyButton</item>
</style>
<style name="MyTheme.Red">
<item name="android:buttonStyle">@style/MyButton.Red</item>
</style>
<style name="MyTheme.Blue">
<item name="android:buttonStyle">@style/MyButton.Blue</item>
</style>
<style name="MyButton" parent="android:style/Widget.Button">
<item name="android:background">@drawable/btn_mydefault</item>
</style>
<style name="MyButton.Red">
<item name="android:background">@drawable/btn_red</item>
</style>
<style name="MyButton.Blue">
<item name="android:background">@drawable/btn_blue</item>
</style>
source
share