web-dev-qa-db-ja.com

アプリのテーマから原色を取得するにはどうすればよいですか?

私のAndroid Javaコードで、テーマに設定されている色「colorPrimary」を参照するにはどうすればよいですか?

私は次のテーマの定義を持っています:

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">

    <item name="colorPrimary">@color/myColor1</item>
    <item name="colorPrimaryDark">@color/myColor2</item>      
    <item name="colorControlNormal">@color/myColor3</item>
    <item name="colorControlActivated">@color/myColor4</item>

</style>

カラーリソース(R.color.myColor1)を直接参照することもできますが、colorPrimaryが将来変更されても一貫性が保たれるように、テーマのprimaryColor設定を参照することをお勧めします。

これは可能ですか?

14
Mayec

これを使って:

TypedValue typedValue = new TypedValue();
getTheme().resolveAttribute(R.attr.colorPrimary, typedValue, true);
int color = typedValue.data;
35
ByteHamster