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_normal
和background_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_normal
和 background_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 的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章