如何在Flutter应用中使用数字色彩计的RGB颜色?Flutter支持RGB色彩吗?
嘿,很高兴能帮你理清这两个关于Flutter RGB颜色的问题!
1. 如何在Flutter应用中使用从数字色彩计获取的RGB颜色?
数字色彩计通常会给出0-255范围的R、G、B数值,Flutter里有两种常用方式来把这些值转换成可用的Color对象:
方法一:使用
Color.fromRGBO()构造函数
这个方法需要传入0-1范围的R、G、B小数,以及透明度(alpha)。你只需要把色彩计的每个数值除以255.0即可,比如你拿到的数值是R=1、G=102、B=112,写法如下:Color customColor = Color.fromRGBO(1 / 255.0, 102 / 255.0, 112 / 255.0, 1.0);最后一个参数
1.0表示完全不透明,如果需要半透明,直接改成对应小数(比如0.8就是80%不透明度)。方法二:转换为十六进制整数使用
Color()构造函数
你可以把RGB值转换成ARGB格式的十六进制整数(A代表透明度,默认用FF表示完全不透明)。比如上面的例子,R=1(十六进制01)、G=102(66)、B=112(70),组合起来就是0xFF016670,写法如下:Color customColor = const Color(0xFF016670);如果色彩计包含透明度,只需要把开头的
FF换成对应十六进制值即可(比如透明度80%对应CC,因为255*0.8=204,十六进制是CC)。
2. Flutter是否支持使用RGB色彩?
当然支持!而且用法和iOS的UIColor非常类似,甚至有更便捷的方式:
你提到的iOS写法UIColor(red:1/255.0, green: 102/255.0,blue: 112/255.0,alpha: 1),在Flutter里对应的直接写法就是上面的Color.fromRGBO()。另外,Flutter还提供了Color.fromARGB()构造函数,它直接接受0-255范围的整数,不用手动除以255,对你从色彩计拿到的数值更友好:
Color customColor = Color.fromARGB(255, 1, 102, 112);
这里第一个参数255是透明度(对应iOS里的alpha=1),后面三个参数就是色彩计给出的R、G、B原始数值。
不管用哪种方式,最终的Color对象都可以直接用在Flutter的Widget属性中,比如Container(color: customColor)。
内容的提问来源于stack exchange,提问作者Amit Kumar

