gpt4 book ai didi

android.R.attr.colorPrimary 总是给我错误的颜色

转载 作者:搜寻专家 更新时间:2023-11-01 07:49:21 27 4
gpt4 key购买 nike

我正在尝试从当前主题属性中给我的按钮颜色:android.R.attr.colorPrimaryR.attr.colorPrimary 应该返回黄色,但一直给我一种蓝色!我还在 list 中设置了主题。

例如,使用 android:background="?attr/colorPrimary" 设置工具栏的背景颜色会给出正确的颜色,但如果它是从代码设置的则不会。

这就是我尝试设置按钮颜色的方式:

    TypedValue typedValue = new TypedValue();
App.getAppContex().getTheme().resolveAttribute(android.R.attr.colorPrimary, typedValue, true);
buttonColor = typedValue.data;


addButton.setText("SAVE");
addButton.getBackground().setColorFilter(buttonColor, PorterDuff.Mode.MULTIPLY);

这是我的“黄色”主题

  <style name="AppTheme_Yellow" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primaryYellow</item>
<item name="colorPrimaryDark">@color/primary_darkYellow</item>
<item name="colorAccent">@color/accentYellow</item>
<item name="android:textColorPrimary">@color/primary_textYellow</item>
<item name="android:textColorSecondary">@color/secondary_textYellow</item>
<item name="android:icon">@color/iconsYellow</item>
<item name="actionOverflowButtonStyle">@style/OverFlowStyle</item>
<item name="popupMenuStyle">@style/popupMenuStyle</item>

“黄色”主题背后的颜色:

<color name="primaryYellow">#FFC107</color>
<color name="primary_darkYellow">#FFA000</color>
<color name="primary_lightYellow">#FFECB3</color>
<color name="accentYellow">#607D8B</color>
<color name="primary_textYellow">#212121</color>
<color name="secondary_textYellow">#727272</color>
<color name="iconsYellow">#212121</color>
<color name="dividerYellow">#B6B6B6</color>

最佳答案

我在我使用的全局应用程序上下文中发现了问题。App.getAppContex().getTheme().resolveAttribute(android.R.attr.colorPrimary, typedValue, true);

因此必须使用 getActivity() 或 UI Wigdets 在其中初始化的 Activity 的上下文:

getActivity().getTheme().resolveAttribute(android.R.attr.colorPrimary, typedValue, true); 

关于android.R.attr.colorPrimary 总是给我错误的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37498842/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com