将rgba颜色代码255,255,255,255转换为kivy颜色代码1,1,1,1
在kivy中,要指定任何颜色值,我们需要使用0到1之间的数值。默认的颜色是[1,1,1,1],这个范围的值可以在0到1之间。不过,其他编程语言常用的rgba代码是从0到255的。我通常会通过一些网页链接来查找这些颜色代码,比如这个:http://www.rapidtables.com/web/color/RGB_Color.htm
这种方式在各种Python工具包中都很有用,比如pyQt库,但在kivy中就不一样了。
有没有人知道为什么kivy的颜色值要用0到1的范围?有没有办法把其他语言使用的颜色值转换成kivy的颜色代码?比如,如果我想把rgb(192,192,192)转换成kivy的颜色代码,该怎么做呢?
8 个回答
2
你可以这样做。
(**255**/255.0, **160**/255.0, **0**/255.0, 1)
你需要把你的RGB值除以255.0,这样上面的颜色就会变成橙色。所有带有**的数字就是你的RGB颜色。
5
可以去看看 kivy.utils,里面有很多很酷的功能。我之前总是去一个 网站 把十六进制颜色转换成十进制的 RGB 值,因为我懒得把每个 RGB 值都除以 255。
#:import utils kivy.utils
<MainWindow>:
Button:
background_color: utils.get_color_from_hex('#58AE6F')
不过这种方法有个小问题,就是你不能设置透明度。如果你想用透明度的话,可以去我提到的那个 网站 获取 RGB 的十进制值,然后把透明度的百分比当作 'a' 值放在 'rgba' 里。
8
为了避免一些除法运算并提高速度:
15
虽然这并没有直接回答问题,但还有一种简单的方法是使用kivy的十六进制特性,下面是一个在kv语言中的例子:
#:import hex kivy.utils.get_color_from_hex
canvas:
Color:
rgba: hex('#03A9F4')
24
我觉得你可以直接用255来除一下:
float_color = color / 255.0