首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用getOuterPath和ShapeBorder实现卡片周围的颤动裁剪

getOuterPath是Flutter中的一个方法,用于获取一个裁剪路径。ShapeBorder是一个抽象类,用于定义形状边框样式。

通过结合使用getOuterPath和ShapeBorder,可以实现卡片周围的颤动裁剪效果。具体实现步骤如下:

  1. 创建一个自定义的ShapeBorder类,继承ShapeBorder抽象类,并重写其getOuterPath方法。在getOuterPath方法中,可以通过Path对象绘制出希望的裁剪路径,实现卡片周围的颤动效果。
  2. 在Flutter应用中使用该自定义的ShapeBorder类作为卡片的边框样式。

下面是一个示例代码:

代码语言:txt
复制
import 'package:flutter/material.dart';

class ShimmerClipper extends ShapeBorder {
  @override
  Path getOuterPath(Rect rect, {TextDirection? textDirection}) {
    final path = Path();
    final r = rect.deflate(20.0);

    // 实现颤动效果的路径绘制
    // ...

    return path;
  }

  @override
  EdgeInsetsGeometry get dimensions => EdgeInsets.zero;

  @override
  ShapeBorder? scale(double t) {
    return null;
  }

  @override
  void paint(Canvas canvas, Rect rect, {TextDirection? textDirection}) {
    // 绘制边框样式
    // ...
  }
}

class MyCard extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      width: 200,
      height: 200,
      decoration: BoxDecoration(
        color: Colors.white,
        border: Border.all(color: Colors.grey),
        shape: BoxShape.rectangle,
        borderRadius: BorderRadius.circular(10),
        boxShadow: [
          BoxShadow(
            color: Colors.grey.withOpacity(0.5),
            spreadRadius: 3,
            blurRadius: 7,
            offset: Offset(0, 3),
          ),
        ],
      ),
      child: Center(
        child: Text(
          'Card Content',
          style: TextStyle(fontSize: 16),
        ),
      ),
    );
  }
}

void main() {
  runApp(MaterialApp(
    home: Scaffold(
      appBar: AppBar(
        title: Text('Flutter Card'),
      ),
      body: Center(
        child: Container(
          width: 200,
          height: 200,
          child: ClipPath(
            clipper: ShimmerClipper(),
            child: MyCard(),
          ),
        ),
      ),
    ),
  ));
}

在上述示例中,自定义的ShimmerClipper类继承ShapeBorder,并重写getOuterPath方法来绘制裁剪路径。然后,将该自定义的ShimmerClipper类作为ClipPath的clipper属性值,用于裁剪MyCard小部件。

这样就可以实现卡片周围的颤动裁剪效果。

对应的腾讯云产品和产品介绍链接地址如下:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Flutter 组件集录】Card | 8 月更文挑战

一、 认识 Card 组件 卡片效果作为 Material Design 中一员,Flutter 中 Card 组件自然是要有的。源码注释中是这么描述它:带有轻微圆角立面阴影面板。...上层 Card 组件包裹后,会有小圆角 + 阴影 效果,其中 color 属性就是面板颜色。...,我们还可以自己定义 Shape, 比如下面通过 nStarPath 获取一个多角星路径,然后在继承自 ShapeBorder StarShapeBorder#getOuterPath 中返回路径...组件可以发现,这种类型组件主要目的就是方便用户使用,其内部都是依赖于别的组件实现,使用在看 StatelessWidget 时多看看内部实现方式,就可以将很多组件联系到一块,很多曾经疑惑点...了解了内部实现,在使用时,也会多几分底气。那本文到这里就结束了,谢谢观看,明天见~

90940

【Flutter高级玩法-shape】Path在手,天下我有

不知你注意或是没注意组件shape属性, 可能你觉得没啥,或说一带而过,今天就来掰扯一下这个ShapeBorder 对象 它强大远远超出你想象,不过记住: Path 在手,天下我有,先看下效果...返回一个Path对象,也就是形状裁剪,这个更厉害 先来看圆角怎么切: path.addRRect来添加一个圆角矩形,然后就出现效果了 ?...你所知道不知道一切-填充环绕原则 ?...Card中使用shape Card是基于Material实现,可以直接使用shape属性 比如下面的列表题目,可以通过边线来润色一下 没形状 有形状 ? ?...这篇就到这里吧,只是为你打开了一扇大门,究其核心还是path操作。 不要让框架限制住你,它仅是最底基层;在其之上,应是创造来筑建大厦城楼。

3.8K61
  • Flutter 组件集录 | RawMagnifier 组件 - 拿起你八倍镜

    如下所示,背景是一张图片,使用 RawMagnifier 实现了点击拖拽局部放大效果,看起来还是蛮酷: 另外,也可以自定义放大镜形状,如下五角星: 该组件已收录入 FlutterUnit...RawMagnifier 组件简单使用 下面来简单使用一下:案例中通过 Stack 将 Image RawMagnifier 叠放在一起,并且居中对齐。...可以配置装饰效果:从源码来看,可以定义放大镜透明度、阴影形状: 如下所示,0.9 透明度可以看出一点底部图案,去掉了边线。...手势交互 上面就是 RawMagnifier 组件使用方式,那如何实现按下展示放大镜、拖拽更新位置、抬起取消呢?答案很简单:监听手势事件。...至于 RawMagnifier 内部实现原理,有机会再单独分析一下。那本文就到这里,谢谢观看~

    40320

    【Flutter 组件集录】ClipPath| 8月更文挑战

    ClipPath 构造方法中可以,传入 clipper clipBehavior 两个参数,分别代表裁剪路径 裁剪行为。 final CustomClipper?...ClipPath 简单使用 clipper 类型为 CustomClipper ,可以看出它是一个 抽象类,所以无法直接实例化对象,所以需要找到可用实现类,或自己实现。...如下,是通过 CircleBorder RoundedRectangleBorder 两个形状进行裁剪案例。...如下是一个简单爱心路径裁剪,这里使用贝塞尔曲线,正好也来看一下 antiAlias hardEdge 表现效果,你放大一下可以看出使用 hardEdge 类型裁剪效果周围有明显锯齿。...三、ClipPath 源码实现简看 实现,它继承自 SingleChildRenderObjectWidget。

    70830

    Flutter 绘制番外篇 - 圆中取形

    前言: 对一些有趣绘制 技能知识, 我会通过 [番外篇] 形式加入《Flutter 绘制指南 - 妙笔生花》小册中,一方面保证小册“与时俱进” “活力”。...因为上面以水平方向 0° 为起点,是上下对称。视觉上,我们更习惯于 左右对称。想实现如下左右对称 正 N 边形,其实也很简单,在计算点位时逆时针旋转 90°即可。...最重要一步是找到角度偏移量 α n 对应关系,不难算出: α = 180°- 180°*(n-2)/n/2-90° = 180°/n 注: n 边形内角为 180°*(n-2) 上面为了方便理解...close(); } } 3、路径作用 路径是绘制操作基石,它作用可以说非常多,可以根据路径进行合并、裁剪、描边、填充、运动等。...如下是自定义 ShapeBorder 形状进行裁剪: ClipPath( clipper: ShapeBorderClipper(shape: MyShapeBorder()), child

    71820

    flutter系列之:Material中3D组件Card

    简介 除了通用组件之外,flutter还提供了两种风格特殊组件,其中在Material风格中,有一个Card组件,可以很方便绘制出卡片风格界面,并且还带有圆角阴影,非常好用,我们一起来看看吧...shape是Card形状,它是一个ShapeBorder对象,有很多已知实现,比如CircleBorder,RoundedRectangleBorder,ContinuousRectangleBorder...borderOnForeground表示是否将Cardborder在child之前展示。 clipBehavior是Card裁剪规则。margin是card周围空白部分。...不同ListTile组件,可以Divider来进行分割,让界面更加美观。...总结 以上就是flutter中Card使用了,大家可以结合ListTile一起构建更加美观复杂系统。

    61410

    小工具,Cpython实现远程读卡器,远程读写消费卡片

    服务器端考虑python,有很多模块可以实现起来快。 一、功能简介: 本工具实现一个在电脑上运行模拟车载机终端。只是功能上模拟,并不是与车载机完全一样。...全采车载机记录也可以拿过来用,通过此工具传给采集前置。 实现了供本地电脑调用读卡库,通信库记录存储库,所有库接口均与嵌入式终端程序中文件库,卡库,通信库接口一致。...二、实现原理: 1.移植嵌入式程序中文件库到电脑上,实现参数保存记录存储模块。 2.用电脑上socket通信封装嵌入式终端上通信接口。...只要现场电脑能连外网,就可以把现场电脑端口映射到外网,可以使用免费端口映射工具。 4.提供现场映射过公网IP地址端口给开发人员。 5.把待读取的卡片放到机器上。...'; del rt; 实现效果图: ? C语言封装一下读写卡接口,可以做个客户端测试了: ? ? ?

    1K20

    【Flutter 实战】各种各样形状组件

    老孟导读:Flutter中很多组件都有一个叫做shape属性,类型是ShapeBorder,比如Button类、Card等组件,shape表示控件形状,系统已经为我们提供了很多形状,对于没有此属性组件...,直线圆角平滑连续过渡,RoundedRectangleBorder相比,圆角效果会小一些。...clipBehavior参数定义了裁剪方式,只有子控件超出父控件范围才有裁剪说法,各个方式说明如下: none:不裁剪,系统默认值,如果子组件不超出边界,此值没有任何性能消耗。...antiAlias:裁剪而且抗锯齿,此方式看起来更平滑,比antiAliasWithSaveLayer快,比hardEdge慢,通常用于处理圆形弧形裁剪。...= this.scale; } } scale参数表示间隔点到圆心缩放比例,五角星效果如下: 下面动画动态设置scale,代码如下: class StartClip extends StatefulWidget

    1.2K10

    读唇术OUT了!在喉咙安装传感器,通过皮肤震动录入声音!东大索尼共同研发

    这可不是特工电影里某个天马行空高科技,最近,东京大学索尼计算机科学研究所(CSL)共同研发出AI系统“Derma”就能实现上述功能,通过将传感器贴合在喉咙周围皮肤上,就能实现从口形(无声说话)到语音转化...据相关研究人员透露,研究灵感最初来源于视听障碍者触诊唇读法,他们会用手指触摸说话者嘴唇下巴周围,以此读取说话内容。也就是说,他们通过触摸障碍者嘴唇周围皮肤就可以知道他们说话内容。...只要在下颚皮肤两个位置安装MEMS(Micro ElectroMechanical Systems)加速度计和角速度传感器,就能通过随着说话发生下颚运动舌肌运动引起从下颚到喉咙皮肤颤动,进行无声...Derma概要图:利用附着在咽喉周围皮肤上加速度/角速度传感器,通过无声说话获取下颚皮肤运动信息,利用深层学习进行分析识别 于是,利用生成音素记号系列连接时间分类(Connectionist Temporal...Classification, CTC)神经网络进行训练,训练之后模型就能把无声说话皮肤颤动转换为语音,转换后语音合成除了可以输入到附近具有语音识别功能数字设备(语音助手)之外,还可以用于帮助因声带损伤等原因而难以发声用户进行交流

    2.1K20

    Flutter第3天--基础控件(上)

    Widget ---- 4.恭喜达成成就:Widget源码偷窥者, 成就奖励:三张卡片卡片初始属性:见白框(PS:属性会随着你阅历变多哦) - - - ---- 二、Flutter卡牌游戏...一个方便widget,它组合了常见painting、positioningsizing 控件。...,不过能有一个孩子,Card我最喜欢了 这里mark一下Card里ShapeBorder shape,源码粗略看了一下,可能挺好玩,今天主看控件 ---- 4.IndexedStack--定索引显示...flow.png 代码实现:从网上找了一个FlowDelegate实现类 核心就是根据位置可以自己绘制孩子位置(吐槽:源码了竟然没有实现类,给一个也好啊...)...children: formTextList(5), ); ---- 2.FractionallySizedBox 这个挺有意思,儿子随爷爷,父亲(FractionallySizedBox)中间倒把手 可以实现爷爷孙子之间尺寸比例联系

    3K30

    Flutter 裁剪类组件 最全总结

    clipBehavior参数定义了裁剪方式,只有子控件超出父控件范围才有裁剪说法,各个方式说明如下: none:不裁剪,系统默认值,如果子组件不超出边界,此值没有任何性能消耗。...antiAlias:裁剪而且抗锯齿,此方式看起来更平滑,比antiAliasWithSaveLayer快,比hardEdge慢,通常用于处理圆形弧形裁剪。...类型,系统已经定义了很多形状,介绍如下: RoundedRectangleBorder:圆角矩形 ContinuousRectangleBorder:直线圆角平滑连续过渡,RoundedRectangleBorder...欢迎您加入Flutter微信交流群(mqd_zzy),欢迎您加入,让我们一起学习,一起进步,开始我们故事,生活不止眼前苟且,还有诗《远方》。...当然我也非常希望您关注我个人公众号,里面有各种福利等着大家哦。 今天文章对大家是否有帮助?如果有,请在文章底部留言和点赞,以表示对我支持,你们留言、点赞转发关注是我持续更新动力!

    62510

    Flutter 裁剪类组件 最全总结

    clipBehavior参数定义了裁剪方式,只有子控件超出父控件范围才有裁剪说法,各个方式说明如下: none:不裁剪,系统默认值,如果子组件不超出边界,此值没有任何性能消耗。...antiAlias:裁剪而且抗锯齿,此方式看起来更平滑,比antiAliasWithSaveLayer快,比hardEdge慢,通常用于处理圆形弧形裁剪。...= this.scale; } } scale参数表示间隔点到圆心缩放比例,五角星效果如下: [1240] 下面动画动态设置scale,代码如下: class StartClip extends...如果有,请在文章底部留言和点赞,你们留言、点赞转发关注是我持续更新动力!...欢迎您加入Flutter微信交流群(mqd_zzy),欢迎您加入,让我们一起学习,一起进步,开始我们故事,生活不止眼前苟且,还有诗《远方》。

    1.5K00

    Power BI DAX裁剪图片

    有时想给图片加点花样,比如进行圆形裁剪,以下是对比效果,注意人物毛衣下方,图库不用重新准备,使用DAX可以精准裁剪。 有人可能想到,图片上方叠加一个SVG圆形标签不就好?...因此,如果需要圆形裁剪图像清晰度二者得兼,还是需要叠加方式,只不过不能直接叠加一个圆圈,而是PPT画一个这样造型,圆圈正方形相交地方填充上颜色,圆圈内部无色,将形状另存为SVG矢量图,记事本打开复制里面的代码...,image标签放到一起。...这样对圆圈外部毛衣进行了遮挡,圆圈内部没有颜色,使得头像得以显示。蓝色可以设置为背景色相同,从而产生裁剪效果。 叠加清晰度原图保持一致,裁剪图片可以用在表格矩阵卡片图。...---- 新卡片图是Power BI迄今为止最强大三大视觉对象之一(另外两个是表格矩阵) 《卡片图添加异形边框》 《卡片图主次指标组合》 《卡片图总分结构》 《卡片图添加地图》 《卡片图添加下划线

    32030

    Flutter第4天--基础控件(下)+Flex布局详解

    今天一开始借助Image来给大家说一个分析小技巧,让你不到30行代码画出下图 不要问有什么,有用时候自然会用到,有知识储备,留个印象也是好 ?...图片颜色混合模式.png ---- RowColumn应该说是非常常用控件,其中有几个属性挺重要, 本文最后,我将对Flex布局(RowColumn父类)进行细致讲解,希望你不要错过。...,Android也好,Flutter也好,套路都是一样 当你遇到很多种情况问题时,都可以这个套路,多分析,你才能巩固自己知识库 ?...是RowColumn老爸,现在先忘掉RowColumn 等你认清Flex怎么玩,RowColumn 也就清楚了 1.先看Flex属性 可以看出direction是必须,类型枚举都在下面列出了...c2c3,最终c2c3长度是一样 如果同时Expanded--c1,c2c3,最终c1,c2,c3长度都是一样 ?

    2.2K30

    Flutter 卡片选择器

    卡片边角阴影有些调整。卡片是用于表示某些关联数据,例如集合,地理区域,膳食,联系方式等。卡片包含有关单个对象内容动作。 在本文中,我们将探讨Flutter中 **Card Selector。...**我们将看到如何在flutter应用程序中使用card_selector包来实现带有动画堆叠卡的卡选择器演示程序。...选择器是完全可配置,动画时间,卡之间间隙,堆叠卡尺寸因子。用户可以从左向右或从右向左滑动卡。特定卡上信息将有所不同。 该演示视频展示了如何在颤动中创建卡选择器。...**onChanged:**此属性用于在卡更改后执行回调。 **mainCardPadding:**此属性用于左填充列表中第一个元素。 实现 将依赖项添加到pubspec-yaml文件。...另外,我们将添加mainCardWidth表示列表中第一个元素宽度,mainCardHeight表示列表中第一个元素高度,onChanged表示要在更改后的卡片上执行回调。

    7.4K20

    4月7日 星期四 晴 论技术负债

    这种技术上选择,就像一笔债务一样,虽然眼前看起来可以得到好处,但必须在未来偿还。软件工程师必须付出额外时间精力持续修复之前妥协所造成问题及副作用,或是进行重构,把架构改善为最佳实现方式。...但其实我最初打算就是把注释标签写成气泡那样,刚刚好显示在被注释元素右下角。 那如果我换成兄弟相邻选择器的话呢,悬停卡片显示描述就完全可以分开来写布局了。方便程度和美观程度完全不可同日而语。...换个例子,比如我之前写SAO风格侧栏卡片,上面有个小小圆角梯形突起对吧,那个是我伪类实现,但是伪类拼接在不同屏幕比下,由于终归是下面卡片分属两个元素,总是会或多或少出现拼接错位,看着就非常不美观...,而如果我clip-path属性直接裁剪边框,那我只需要注意调整marginpadding属性就可以保证自适应美观了。...还有flex布局,我也是在写首页卡片魔改时候才知道可以通过order重新编排子元素排列位置。以前我可是傻乎乎left、top、bottom、right等定位硬生生把各个布局强行扭过来

    49710
    领券