我想为包含十六进制颜色代码的容器添加不透明度。我是新来的人。请帮我。这是代码。提前致谢。
final body = Container(
width: MediaQuery.of(context).size.width,
margin: const EdgeInsets.only(left: 40.0, right: 40.0),
padding: EdgeInsets.all(28.0),
decoration: new BoxDecoration(
color: const Color(0xFF0E3311),//here i want to add opacity
border: new Border.all(color: Colors.black54,
),
borderRadius: new BorderRadius.only(
topLeft: const Radius.circular(40.0),
topRight: const Radius.circular(40.0),
bottomLeft: const Radius.circular(40.0),
bottomRight:const Radius.circular(40.0) )
),
child: Column(
children: <Widget>[ email, password,loginButton],
),
);
改变线
const Color(0xFF0E3311)
至
const Color(0xFF0E3311).withOpacity(0.5)
或任何你想要的价值。
Flutter使用ARGB格式的32位颜色值,其中A = Alpha,R = RED,G = GREEN,B = BLUE。
因此,要控制不透明度,您可以更改const Color(0xFF0E3311)
中十六进制值的前两位数值,您可以使用0x000E3311
,0x010E3311
.... 0xFF0E3311
中的值。
希望有所帮助!
如果您只想为颜色设置不透明度,则在颜色代码之前添加2个十六进制数字非常简单。检查此answer以了解所有值。
但是如果你想改变所有小部件的不透明度,在你的情况下是一个容器,你可以将它包装成一个不透明小部件,如下所示:
double _opacityValue = 0.50;//This value goes from 0.0 to 1.0. In this case the opacity is from 50%
final Widget _bodyWithOpacity = Opacity(
opacity: _opacityValue,
child: body,
);
在代码const Color(0xFF0E3311)
之后,0x两个值(在上面的代码'FF'中)用于不透明度。 “FF”表示不透明,“00”表示完全透明。因此,通过更改此值,您可以更改颜色不透明度。另外,我们通过Colors class diff opacity值颜色获得白色和黑色。例如,Colors.white70
表示白色,70%不透明度