Kivy:更改 ActionBar 的背景颜色

Posted

技术标签:

【中文标题】Kivy:更改 ActionBar 的背景颜色【英文标题】:Kivy: Change background color of ActionBar 【发布时间】:2015-08-14 04:56:15 【问题描述】:

我正在尝试将 ActionBar 的颜色从默认的深灰色更改为不同的颜色。我使用了来自相关问题here 的@inclement 的建议。这是我的代码:

ActionBar:
    background_normal: 'white_background.png'
    background_down: 'white_background.png'
    background_color: [51, 102, 255, .5]

white_background.png 是 8px * 8px 白色 png 图片。

这样做会将 ActionBar 的背景颜色从深灰色更改为浅灰色(不是我期望的颜色)。我猜这是由于@inclement 提到的关于background_color 具有着色效果而不是块颜色替换的行为。

按照@AronBordin 的建议,我还尝试将background_normalbackground_down 设置为空字符串,但这不会覆盖着色行为。

替换ActionBar背景色的正确方法是什么?

【问题讨论】:

【参考方案1】:

您必须先将 background_image 设置为纯白色图像。正确的实现是:

background_image: 'white-bg.png'
background_color: .3,.3,.3,1

【讨论】:

【参考方案2】:

你可以使用:

    background_normal: ''
    background_down: ''
    background_color: 0, 1, 0, 1

background_color 将是 rgba 颜色。 采取look here。颜色作为纹理的乘数,但如果没有设置纹理,顶点指令将采用颜色指令的精确颜色。

【讨论】:

这会产生与我的代码相同的着色/倍增效果。似乎将 background_normalbackground_down 设置为空字符串不会覆盖此着色行为。 请注意background_color: [51, 102, 255, .5] 不起作用。所有 RGBA 值都必须指定一个介于 0 和 1 之间的数字。0, 1, 0, 1 background_color: 0, 1, 0, 1 例如,与 0、255、0 相同,具有 100% alpha【参考方案3】:

这似乎对我有用:

#:import hex kivy.utils.get_color_from_hex

    BoxLayout:
        orientation: 'vertical'
        ActionBar:
            background_image: 'assets/images/bg_normal.png'
            background_color: hex('#9C27B0')

assets/images/bg_normal.png 是 10x10 白色 png 图片

【讨论】:

【参考方案4】:

对于 Kivy 1.10,我认为这可以正常工作。

background_color: (0.60, 0.07, 0.70, 1)

使用 1 中的 RGBA 值,即十进制值

【讨论】:

以上是关于Kivy:更改 ActionBar 的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

更改 actionBar 下拉背景颜色

如何使用 XML 更改 ActionBarActivity 的 ActionBar 的背景颜色?

Kivy 选项卡式面板不会更改背景颜色

如何更改 Kivy 中按钮的背景颜色?

如何在 Kivy 中动态更改标签背景颜色

python - 如何在python的kivy app模块中更改屏幕背景的颜色?