ClipOval,ClipRRect,ClipRect,ClipPath(每日Flutter 小部件)

Clip的相关组件:

ClipOval: 圆形裁剪

ClipRRect: 圆角矩形裁剪

ClipRect:矩形裁剪

ClipPath: 路径裁剪

参数:

clipper:裁剪路径  CustomClipper<Path> 的实现
class ClipWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return getLv(context);
  }

//  ClipOval: 圆形裁剪
//  ClipRRect: 圆角矩形裁剪
//  ClipRect:矩形裁剪
//  ClipPath: 路径裁剪

  Widget getLv(BuildContext context) {
    return Expanded(
        child: ListView(children: <Widget>[
      ClipOval(
        child: SizedBox(
          width: 200,
          height: 200,
          child: getImageWidget(),
        ),
      ),
      ClipRect(
        child: getImageWidget(),
      ),
      ClipRRect(
        borderRadius: BorderRadius.all(Radius.elliptical(30, 10)),
        child: getImageWidget(),
      ),
      ClipPath(
        clipper: TheTriangleCustomClipper(),
        child: getImageWidget(),
      )
    ]));
  }

  Widget getImageWidget() {
    return Image.network(
      "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1584787666369&di=2595aefbc771e601d57cfc5102135d78&imgtype=0&src=http%3A%2F%2Fa3.att.hudong.com%2F68%2F61%2F300000839764127060614318218_950.jpg",
      fit: BoxFit.fill,
    );
  }
}

class TheTriangleCustomClipper extends CustomClipper<Path> {
  @override
  Path getClip(Size size) {
    Path path = Path()
      ..moveTo(0.0, 0.0)
      ..lineTo(size.width, size.height)
      ..lineTo(0.0, size.height)
      ..close();
    return path;
  }

  @override
  bool shouldReclip(CustomClipper<Path> oldClipper) {
    return true;
  }
}

效果图:

原文地址:https://www.cnblogs.com/wjw334/p/12552172.html

时间: 2024-11-15 15:44:58

ClipOval,ClipRRect,ClipRect,ClipPath(每日Flutter 小部件)的相关文章

PlaceHolder(每日Flutter 小部件)

占位控件 color: Colors.blue, // 设置占位符颜色 defalutBlue Grey 70strokeWidth: 5, //设置画笔宽度fallbackHeight: 200, //设置占位符宽度fallbackWidth: 200, //设置占位符高度 import 'package:flutter/material.dart'; class PlaceHolderWidget extends StatelessWidget { @override Widget buil

有趣的网页小部件笔记

在网页上加入一些简单的小部件就可以让网页变得很有趣,这里记录一下用过的比较有趣的小部件. 1. 访问次数统计 借助于amazingcounters可以统计网站的被访问次数,提供了很多的样式可以选择: 只需要将生成的html代码片段插入到要统计的网页中即可: <p style="align: center"> <a href="http://www.amazingcounters.com"> <img border="0&quo

HTML5实战 文摘 第二章 HTML5用于创建表单的输入小部件 数据绑定以及数据验证

HTML5表单在原有表单特性的基础上增加了一些比较便捷的特性,使得我们实现一些常用的表单的小部件.输入类型.输入验证不再那么大费周章.上一篇文章提到了HTML5实现的几种新的输入类型,现在我们更加详尽的了解HTML5的表单产生的新特性和功能. 1. 输入类型和输入属性 菜鸟教程上给出了HTML5新增加的input输入类型,可以在上面尝试一下不同类型的样子,基本可以满足日常开发需求了.类型不同会照成什么内在差异呢?主要有三点,首先,浏览器会根据输入类型进行基本的数据校验,例如type="email

【翻译】了解Ext JS 5的小部件

原文:Understanding Widgets in Ext JS 5 在Ext JS 5,引入了新的"widgetcolumn",支持在网格的单元格中放置组件.同时,还在Ext JS 5引入了一种新的被称为"小部件"的轻量级组件.在Ext JS 5中,已包含了几个小部件,在本文将告诉你如何轻松的去打造自己的小部件. 为了说明其中的关键概念,在文中将创建一个简单的名为"ratings"的如下图所示的小部件: 入门 与常用的从Ext.Compon

优质Android小部件:索尼滚动相册

虽然骚尼手机卖的不怎么样,但是有些东西还是做的挺好的,工业设计就不用说了,索尼的相册的双指任意缩放功能也是尤其炫酷.其桌面小部件滚动相册我觉得也挺好的,比谷歌原生的相册墙功能好多了,网上搜了一下也没发现有人写这个,于是,下面就介绍下我的高A货. 首先是效果图: 主要手势操作有: 上/下满速移动,可以上滑/下滑一张图片 上/下快读移动,则根据滑动速度,上滑/下滑多张图片 单击则请求系统图库展示该图片 该小部件的主要优点:在屏幕内的小范围内提供一个很好的图片选择/浏览部件,尤其是切换图片时有很强的靠

Android Widget 小部件(四---完结) 使用ListView、GridView、StackView、ViewFlipper展示Widget

官方有话这样说: A RemoteViews object (and, consequently, an App Widget) can support the following layout classes: FrameLayout LinearLayout RelativeLayout And the following widget classes: AnalogClock Button Chronometer ImageButton ImageView ProgressBar Text

YII2.0之窗体小部件

在工作中用到YII2框架,之前对Yii的Widgets这个不太理解,也就没有用上.最近在查看YII2的英文指南的时候,终于弄明白了是怎么一回事. 举个简单的例子,如果在做后台开发的时候,大部分页面都需要用到一个可选择的列表(<select>),那么我们可以把它做成窗体小部件. 具体看下面代码: <?php /**  * Created by PhpStorm.  * User: Administrator  * Date: 2017/2/14  * Time: 18:01  */ nam

Yii2的相关学习记录,alert等美化、confirm异步、session中的flash及小部件的使用(六)

呃,系统自带的alert.confirm等弹出框实在是难看,作为一个颜控,这能忍? 这里我用的是kartik-v/yii2-dialog,这个是基于bootstrap3-dialog这个来做了一些常用alert.confirm和dialog的小部件封装,当然了,本质上还是bootstrap3-dialog,可以用原生的方法,原生方法的用法点这里,而bootstrap3-dialog又是基于bootstrap3的modals做的封装.嗯,基本关系就是这样.在搜索这个相关知识时,经常会看到有人提到b

Dojo自定义小部件样例

样例一: <html> <head>     <meta charset="UTF-8">     <link rel="stylesheet" href="dijit/themes/soria/soria.css">     <script type="text/javascript" src="dojo/dojo.js" djConfig="