优美的应用体验 来自于细节的处理,更源自于码农的自我要求与努力,当然也需要码农年轻灵活的思维,不局限于思维,不局限语言限制,才是编程的最高境界。

本文章实现的效果如下图所示:

在Flutter工程项目中 单文件启动:

void main() {//启动根目录runApp(MaterialApp(home: ClipperCard(),));
}
class ClipperCard extends StatelessWidget {@overrideWidget build(BuildContext context) {return Scaffold(body: Center(//裁剪背景child: ClipPath(//定义裁切路径clipper: BackgroundClipper(),child: buildContainer(context),),),);}//一个普通的背景Container buildContainer(BuildContext context) {return Container(width: MediaQuery.of(context).size.width * 0.8,height: MediaQuery.of(context).size.width * 0.8 * 1.33,//背景装饰decoration: BoxDecoration(//线性渐变gradient: LinearGradient(//渐变使用到的颜色colors: [Colors.orange, Colors.deepOrangeAccent],//开始位置为右上角begin: Alignment.topRight,//结束位置为左下角end: Alignment.bottomLeft,),),);}
}

自定义的 BackgroundClipper 裁剪路径如下:

class BackgroundClipper extends CustomClipper<Path> {@overridePath getClip(Size size) {double roundnessFactor = 50.0;Path path = Path();//移动到A点path.moveTo(0, size.height * 0.33);//画直线到B点 同时也充当 下一个二阶贝塞尔曲线 的起点path.lineTo(0, size.height - roundnessFactor);//二阶贝塞尔曲线 只有一个控制点// 控制点 C (0, size.height)// 终点 D (roundnessFactor, size.height)path.quadraticBezierTo(0, size.height, roundnessFactor, size.height);//二阶贝塞尔曲线 只有一个控制点//画直线到 E点 同时也充当 二阶贝塞尔曲线 的起点path.lineTo(size.width - roundnessFactor, size.height);// 控制点 F (size.width, size.height)// 终点 G (size.width, size.height - roundnessFactor)path.quadraticBezierTo(size.width, size.height, size.width, size.height - roundnessFactor);//二阶贝塞尔曲线 只有一个控制点//画直线到 H 点 同时也充当 二阶贝塞尔曲线 的起点path.lineTo(size.width, roundnessFactor * 2);// 控制点 M 与 终点 Kpath.quadraticBezierTo(size.width - 10, roundnessFactor,size.width - roundnessFactor * 1.5, roundnessFactor * 1.5);//二阶贝塞尔曲线 只有一个控制点//画直线到 T点 同时也充当 二阶贝塞尔曲线 的起点path.lineTo(roundnessFactor * 0.6, size.height * 0.33 - roundnessFactor * 0.3);//控制点 W Zpath.quadraticBezierTo(0, size.height * 0.33, 0, size.height * 0.33 + roundnessFactor);return path;}@overridebool shouldReclip(CustomClipper<Path> oldClipper) {return true;}
}

使用了多个 二阶贝塞尔曲线 ,点位分析如下:

二阶贝塞尔曲线 quadraticBezierTo 方法图示


三阶贝塞尔曲线 cubicTo


【x1】微信公众号的每日提醒 随时随记 每日积累 随心而过 文章底部扫码关注

【x2】各种系列的视频教程 免费开源 关注 你不会迷路

【x3】系列文章 百万 Demo 随时 复制粘贴 使用

【x4】简短的视频不一样的体验

【x5】必须有源码


不局限于思维,不局限语言限制,才是编程的最高境界。

以小编的性格,肯定是要录制一套视频的,随后会上传

有兴趣 你可以关注一下 西瓜视频 — 早起的年轻人

Flutter ClipPath 自定义CustomClipper 玩转不一样的背景图案相关推荐

  1. Flutter 裁剪布局之 ClipRect、ClipRRect、ClipOval、ClipPath、CustomClipper

    文章目录 裁剪布局 ClipRect ClipRRect ClipOval ClipPath 及 CustomClipper 参考: Flutter 裁剪类组件 最全总结 5.7 剪裁(Clip) 裁 ...

  2. Flutter:使用 CustomClipper 绘制 N 角星

    本文将向您展示如何使用Flutter 中的**CustomClipper类绘制n 角星**(5 角星.6 角星.10 角星.20 角星等).无需安装任何第三方软件包.我们将从头开始制作东西. 重点是什 ...

  3. 周末也需要学习 分享一个 Flutter 波浪波动效果的登录页面的背景 Flutter ClipPath实现的波动

    优美的应用体验 来自于细节的处理,更源自于码农的自我要求与努力,当然也需要码农年轻灵活的思维,不局限于思维,不局限语言限制,才是编程的最高境界. 优美的音乐节奏带你浏览这个效果的编码过程 坚持每一天, ...

  4. 在 Flutter 中自定义画笔 Painter

    在 Flutter 中自定义画笔 Painter 前言 今天我们将讨论定制 Painter,首先我们将看看什么时候使用定制 Painter,定制 Painter 是如何工作的,最后但并非最不重要的是, ...

  5. Flutter APPbar 自定义icon

    Flutter APPbar 自定义icon appBar: AppBar(title: Text("Home"),leading: Builder(builder: (Build ...

  6. 绝地求生自定义服务器租一天多少钱,绝地求生自定义服务器怎么玩 绝地求生自定义服务器玩法解析...

    绝地求生自定义服务器怎么玩,绝地求生自定义服务器是游戏中新上线的玩法模式,相信许多吃鸡玩家都非常好奇自定义模式的玩法,今天小编就为大家分享下绝地求生自定义服务器玩法解析. 绝地求生自定义服务器玩法解析 ...

  7. 绝地求生自定义服务器租一天多少钱,绝地求生自定义服务器怎么玩 自定义服务器玩法一览...

    绝地求生自定义服务器马上就要上线了,那么自定义服务器要怎么玩呢?下面小编就给大家带来自定义服务器的玩法讲解,对自定义服务器感兴趣的小伙伴一起来看看啊. 自定义服务器玩法一览 为了让每位玩家可以创建自己 ...

  8. 自定义服务器怎么进去,绝地求生自定义服务器玩法介绍 自定义服务器怎么玩...

    绝地求生自定义服务器玩法介绍,自定义服务器马上就要上线了,相信不少玩家也是期待已久了,那么自定义服务器怎么玩呢?下面就来一起看下吧. 绝地求生自定义服务器玩法解析 为了让每位玩家可以创建自己的游戏房间 ...

  9. Flutter ScaleWidget 自定义刻度尺

    Flutter ScaleWidget 自定义刻度尺 目录 话不多说,上图 功能 主要类.方法.属性 使用 最后 目录 之前做安Android一直想着自定义View,现在做Flutter了,那么咱们就 ...

最新文章

  1. python logger
  2. R语言ggplot2可视化发散型条形图、发散条形图(Diverging Bars)是一种可以同时处理负值和正值的条形图、并按照大小排序区分数据(Diverging Bars)
  3. Map-Reduce编程模型gif图片解释
  4. 客户主数据冻结与删除标记位汇总
  5. 实战|利用机器学习解决一个多分类任务
  6. 广东计算机应用基础试题及答案2019,2019年计算机应用基础试题库及答案.pdf
  7. mysql 热迁移,proxmox迁移详解
  8. java程序流程图_跟我学java编程—绘制流程图其实很简单
  9. 杂七杂八(7): win7无法安装python3
  10. 简述基于软件体系结构的软件开发过程
  11. python编程,毫秒级延时的一种实现方式
  12. win7默认网关不可用_win7 默认网关不可用
  13. 「13」朴素贝叶斯Python实战:计算打喷嚏的工人患病的概率
  14. Mutual Graph Learning for Camouflaged Object Detection阅读笔记
  15. C++ 求绝对值函数abs()
  16. lstm需要优化的参数_1-基于LSTM-GA 的股票价格涨跌预测模型
  17. win8安装sql server2005方法
  18. 说说我们都怎么面试程序员的
  19. C语言编写一下棋程序,C语言编写的与电脑下棋程序代码
  20. [人工智能-深度学习-63]:生成对抗网络GAN - 图片创作:普通GAN, pix2pix, CycleGAN和pix2pixHD的演变过程

热门文章

  1. 不得不赞!一个国内(可能)最好的海量CV数据集获取网站
  2. OpenPCDet:点云3D目标检测开源库
  3. NeurlPS 2019丨微软亚洲研究院 5 篇精选论文解读
  4. 资源分享 | 知识蒸馏总结、应用与扩展(2015-2019)
  5. 百度发起遥感图像农作物识别大赛—8.5万总奖池邀你建设“美丽乡村”
  6. 独家总结 | 决策树算法Python实现(附代码详解及注释)
  7. 数据结构练习题之树和图(附答案与解析)
  8. 理解SSD多盒-实时目标检测
  9. HTML页面把list转成array,c# – 将Collection转换为Array或List的快速方法?
  10. hj212协议数采仪_CEMS系统配套用环保数采仪 HJ212协议上传