第一百八十三回 如何给图片添加阴影

本文介绍了在Flutter中给图片添加阴影的方法,通过Container和BoxShadow组件实现,适用于纯色图片,但对包含多种颜色的图片效果不佳。


我们在上一章回中介绍了"自定义可以滑动的刻度尺"样相关的内容,本章回中将介绍" 如何给图片添加阴影".闲话休提,让我们一起Talk Flutter吧。

1. 概念介绍

我们在前面章回中介绍了各种阴影,并且介绍了如何绘制阴影,不过还有一个比较特殊的组件没有阴影,该组件是图片,比如我们在绘制阴影时也无法给图片绘制阴影,我记得在Android原生开发时可以给图片绘制出阴影效果,但是在Flutter中无法给图片绘制出阴影。不过我们可以给图片添加阴影,本章回中将介绍具体的实现方法。

2. 思路与方法

2.1 实现思路

我们在前面的博客中介绍过一种给组件添加阴影的方法,给图片添加阴影可以借用此方法。总体的思路是在图片外层嵌套一个Container组件,然后通过Container组件来实现阴影效果,该阴影效果会出现在图片周围,相当于在图片上添加了阴影。

2.2 实现方法

有了实现的思路后,我们将介绍具体的实现方法,详细的步骤如下:

  1. 创建Container组件对象,并且把Image组件赋值给它的child属性;
  2. 创建BoxDecoration对象并且把它赋值给Container组件的decoration属性;
  3. 创建BoxShadow对象,并且把它赋值给BoxDecoration组件的boxShadow属性;
  4. 调整BoxShadow组件的相关属性,控制阴影的大小,位置和颜色;

3. 代码与效果

3.1 示例代码

我们按照刚才介绍的实现方法来给图片添加阴影,下面是详细的代码。

///给图片添加阴影 
Widget buildImageShadow() {
  return Container(
    decoration: const BoxDecoration(
      boxShadow: [BoxShadow(color: Colors.redAccent,
        blurRadius: 16,
        blurStyle: BlurStyle.solid,
      ),]

    ),
    child: const Image(
      width: 160,
      height: 100,
      image: AssetImage("images/panda.jpeg"),
      fit: BoxFit.fill,
      filterQuality:FilterQuality.high ,
    ),
  );
}

3.2 运行效果

编译并且运行上面的代码可以得到以下效果图.

在这里插入图片描述

从图中可以看到图片的周围有一个红色的阴影。这个阴影就是我们通过代码添加的阴影。大家可以自己动手修改BoxShadow组件的属性,进而调试出不同颜色,不同位置的阴影效果。强烈建议大家自己去实践。

此外,这种添加方法还有一个缺点:对于纯色的图片添加阴影效果比较好,对于包含不同颜色的图片添加阴影效果不太好,主要原因是:图片中包含多种颜色,而阴影的颜色无法和图片中的多种颜色保持一致。

4. 内容总结

最后,我们对本章回的内容做一个全面的总结:

  • 在绘制图片时无法绘制阴影,不过可以给图片添加阴影;
  • 给图片添加阴影通过Container组件和BoxShadow组件来实现;
  • BoxShadow组件可以控制阴影的颜色,范围大小,出现位置等属性;
  • 给纯色图片添加阴影的效果比较好,给包含不同颜色的图片添加的阴影效果不太好;

看官们,与"如何给图片添加阴影"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值