在实际项目中给页面添加背景色是容易的,因为大部分组件都提供了相关的属性来控制背景颜色,只需要修改控制背景颜色的属性值就可以,如果想把背景颜色换成图片,那么就不能使用这些控制背景色的属性了,因为图片类型和颜色类型不一样,不能把相互赋值。本章回中将介绍如何在页面中添加图片背景。
我们提供两种添加背景图片的方法:
创建一个Stack
组件,通过该组件的childern属性叠加其它组件,把图片组件放在最下方用来充当其它组件的背景图片。多个组件叠加时可以使用Stack的对齐属性调整对齐方式,通过Position
组件调整组件位置。
创建一个Container
组件,通过该组件的child属性嵌套其它的组件,通过该组件的decoration
属性添加图片,图片位于所有被嵌套组件的最下层,该属性还可以添加边框,修改圆角。
这两种实现方法中,我们推荐使用Container容器这种方法,因为它的灵活性好一些。
上面的小节中介绍了添加图片背景的实现方法,不过比较抽象,接下来通过代码来演示:
///页面中带有背景图片,使用stack实现
const Stack(
children: [
Image(
width: 200,
height: 200,
opacity: AlwaysStoppedAnimation(0.5),
image: AssetImage('images/ex.png'),
fit: BoxFit.fill,
),
Center(child: Text('This is the body')),
],
),
///页面中带有背景图片,使用container实现
Container(
width: 200,
height: 200,
decoration:const BoxDecoration(
///设置容器的边框和圆角,下面的方法可以运行
border: Border.all(color: Colors.deepPurpleAccent,width: 3),
borderRadius: BorderRadius.circular(30),
///修改图片的填充方式和模糊效果
image: DecorationImage(
opacity: 0.5,
// colorFilter: ColorFilter.mode(Color.fromARGB(100, 200, 20,30),BlendMode.difference),
image: AssetImage("images/ex.png"),
fit: BoxFit.fill,
),
),
child:const Text('This is the body'),
),
上面示例代码中使用的图片需要提前准备好,代码中在关键位置添加了注释,方便大家理解代码。编译并且运行上面的程序可以看到两个大小为200的正方形图片,图片上显示的文字相当于子组件。这两个组件相当于一个局部的页面背景,大家可以自行调整组件的大小,这样可以用于不同的场景中。
此外,示例代码中的子组件是一个Text,大家可以换成自己想要的其它组件。我在这里就不演示程序的运行结果了,建议大家自己动手去实践。
看官们,与"如何在页面中添加图片背景"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!