web-dev-qa-db-ja.com

Android:ドローアブルxmlで現在のテーマの色を使用する方法は?

プライマリ、プライマリダーク、プライマリライト、アクセントの色が異なる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があると色が異なります。ドローアブルに現在のアクティビティの現在のテーマの色を使用させる方法はありますか?

12
user3290180

この属性を使用して、現在使用されているテーマから色を取得できます。

Android:color="?colorPrimary"

これは、Android 5.0以降の場合にのみ可能です。

27
e-shfiyut