【问题标题】:Kivy: Change background color of ActionBarKivy:更改 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背景色的正确方法是什么?

【问题讨论】:

    标签: python kivy


    【解决方案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 值,即十进制值

        【讨论】:

          猜你喜欢
          • 2013-03-03
          • 1970-01-01
          • 2014-03-05
          • 2015-07-25
          • 1970-01-01
          • 2014-01-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多