プライマリ、プライマリダーク、プライマリライト、アクセントの色が異なる2つのテーマを定義しました。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
</style>
<style name="AppTheme2" parent="AppTheme">
<item name="colorPrimary">@color/primary_2</item>
<item name="colorPrimaryDark">@color/primary_dark_2</item>
<item name="colorAccent">@color/accent_2</item>
</style>
AppThemeは<application/>
のデフォルトです。次に、特定のアクティビティでAppTheme2を設定します。
ドローアブルファイルxmlで、colors.xmlで定義されているAppThemeと同じ原色を使用しています
ドローアブルは両方のテーマの多くのアクティビティで使用されているため、AppTheme2があると色が異なります。ドローアブルに現在のアクティビティの現在のテーマの色を使用させる方法はありますか?
この属性を使用して、現在使用されているテーマから色を取得できます。
Android:color="?colorPrimary"
これは、Android 5.0以降の場合にのみ可能です。