flutter - 如何在 Flutter 中的 BackdropFilter.blur 中制作一个 100x100 的不模糊孔

标签 flutter blur

我需要在 Flutter 中的 BackdropFilter.blur 中打一个 100x100 的不模糊孔

最佳答案

您可以使用CustomClipper

class MyClipper extends CustomClipper<Path> {
  @override
  Path getClip(Size size) {
    Path path = Path();
    path.fillType = PathFillType.evenOdd;
    path.addRect(Rect.fromLTWH(0, 0, size.width, size.height));

    path.addOval(Rect.fromCenter(
        center: Offset(size.width / 2, size.height / 2),
        width: 100,
        height: 100));

    return path;
  }

  @override
  bool shouldReclip(covariant CustomClipper<Path> oldClipper) => true;
}

并使用

ClipPath(
  clipper: MyClipper(),
  child: BackdropFilter(
    filter: ImageFilter.blur(
      //import dart:ui
      sigmaX: 5.0,
      sigmaY: 5.0,
    ),
    child: const SizedBox(
      width: 200.0,
      height: 200.0,
    ),
  ),
),

结果

enter image description here

关于flutter - 如何在 Flutter 中的 BackdropFilter.blur 中制作一个 100x100 的不模糊孔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75836448/

相关文章:

flutter - 如何强制用户将 flutter 应用程序更新到最新版本?

Flutter 在圆形容器内创建单选按钮

jQuery 模糊除了某些元素

video - 如何通过javascript在像ffmpeg风格的 Canvas 中绘制马赛克?

android - 如何使用模糊库获取直接位图结果

javascript - HTML 表单模糊调用 PHP 的 JQuery 函数调用

Flutter:无法使用TabBar设置SliverPercientHeader的首选高度

firebase - 如何在另一个小部件中获取Firestore数据

websocket - Flutter websocket断开监听

jQuery 验证消除一个字段上的模糊