如何从attr获取不同主题的颜色?

时间:2019-01-14 12:58:36

标签: android android-theme android-color attrs.xml

在我的应用程序中,我正在以编程方式更改状态栏的颜色。但是,当我更改主题时,我想通过从attrs.xml获取状态栏颜色并将其以编程方式应用于状态栏来做同样的事情。

style.xml

<style name="AppThemeDark" parent="Theme.AppCompat.Light.DarkActionBar">

    <item name="colorPrimary">#002b27</item>

</style>


<style name="AppThemeLight" parent="Theme.AppCompat.Light.DarkActionBar">

    <item name="colorPrimary">#e0e7e6</item>

</style>

attrs.xml

<declare-styleable name="theme">

    <attr name="colorPrimary" format="color"/>

</declare-styleable>

MainActivity.Java

    int[] attrs = {R.attr.statusBarColorInboxTop};
            TypedArray ta = getApplicationContext().obtainStyledAttributes(attrs);
            int color = ta.getResourceId(0, android.R.color.holo_blue_dark);
            ta.recycle();





getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
            getWindow().setStatusBarColor(getResources().getColor(color));

0 个答案:

没有答案