I made a sample. Doesn't require to create something in drawable.
So, we take empty project and add to manifest.
1) The description of an activity background
CreateResource (drawable, mygradient.xml,
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient android:angle="90" android:endColor="#4a80ec" android:startColor="#14316b" android:type="linear" />
</shape>
)
2) The description for a button background.
I described two states - pressed and other. You can add, for example, for "focused".
I made simple colors. Actually it's possible to make very interesting things.
CreateResource (drawable, mybutton.xml,
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<gradient android:angle="90" android:startColor="#c25e00" android:endColor="#fb8c00" />
</shape>
</item>
<item>
<shape>
<gradient android:angle="90" android:endColor="#ff009f" android:startColor="#1a2b5d" />
</shape>
</item>
</selector>
)
3) Now time to describe a theme.
For API 14+
CreateResource (values-v14, theme.xml,
<resources>
<style name="DarkTheme" parent="@android:style/Theme.Holo">
<item name="android:windowBackground">@drawable/mygradient</item>
<item name="android:buttonStyle">@style/ButtonAppTheme</item>
</style>
<style name="ButtonAppTheme" parent="android:Widget.Holo.Button">
<item name="android:background">@drawable/mybutton</item>
</style>
</resources>
)
For API 20+
CreateResource (values-v20, theme.xml,
<resources>
<style name="DarkTheme" parent="@android:style/Theme.Material">
<item name="android:windowBackground">@drawable/mygradient</item>
<item name="android:buttonStyle">@style/ButtonAppTheme</item>
</style>
<style name="ButtonAppTheme" parent="android:Widget.Material.Button">
<item name="android:background">@drawable/mybutton</item>
</style>
</resources>
)
The difference in names only. The most important tag here
<item name="android:buttonStyle">
This name is fixed inside Theme.Holo and Theme.Material (you can't change it)