android - 如何从我的应用程序主题中获取原色?

标签 android android-xml android-theme android-styles android-color

在我的 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),但我更愿意引用主题的 primaryColor 设置,以便在 colorPrimary 将来发生变化时保持一致。

这可能吗?

最佳答案

使用这个:

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

关于android - 如何从我的应用程序主题中获取原色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28489509/

相关文章:

android - child 视线高度相等

Android - 更改应用程序中所有对话框的对话框标题样式

android - 如何更改工具栏中图标的颜色?

php - 从 mysql 服务器加载的文本没有出现在 ListView 中

android - 谷歌播放崩溃

android - 引入ConstraintLayout之后再有RelativeLayout有什么好处?

android - XML 布局 - 滚动后按钮不可见

android - 在 Android 中设置 Share Action Provider 的样式

android - 如何在 Android 中处理来电事件

android - EditText 不会显示在 ListView 上方