当前位置: 首页 > article >正文

着色器ShaderMask

说明

实现一个渐变进度条,要求
颜色渐变的过程是循序渐进的,而不是看起来像是将渐变条逐渐拉长了。

效果

请添加图片描述

源码

// 渐变进度条
            Stack(
              children: [
                // 背景色板
                Container(
                  width: 300,
                  height: 8,
                  decoration: BoxDecoration(
                      borderRadius: BorderRadius.circular(12),
                      color: Colors.grey.withOpacity(0.15)),
                ),
                //  着色
                ClipRRect(
                  borderRadius: BorderRadius.circular(12),
                  // ShaderMask 着色器
                  child: ShaderMask(
                    // BlendMode 多种模式可选
                    //【BlendMode介绍】https://blog.csdn.net/chenlove1/article/details/84574237
                    blendMode: BlendMode.srcOver, // srcOver :将 源 合成到 目标上
                    shaderCallback: (Rect bounds) {
                      // 源图像
                      return const LinearGradient(
                        colors: [Color(0xFF7451ff), Color(0xff40d0fd)],
                      ).createShader(const Rect.fromLTWH(0, 0, 300, 8));
                    },
                    // 目标图像
                    child: AnimatedContainer(
                      width: 200, // 进度
                      height: 8,
                      duration: Durations.medium1,
                      decoration: BoxDecoration(
                        borderRadius: BorderRadius.circular(12),
                        color: Colors.grey.withOpacity(0.15),
                      ),
                    ),
                  ),
                )
              ],
            )

http://www.kler.cn/a/317389.html

相关文章:

  • UVa 11855 Buzzwords
  • SHA-256哈希函数
  • 一键生成本地SSL证书:打造HTTPS安全环境
  • ARM架构中断与异常向量表机制解析
  • redis7.x源码分析:(1) sds动态字符串
  • 标准C++ 字符串
  • HTML、CSS
  • python机器学习足球数据建模与分析——数据预测与预测建模
  • 嵌入式综合实验平台-嵌入式综合实训实验箱
  • [Excel VBA]如何使用VBA按行拆分Excel工作表
  • PHP智慧教育新篇章优校管理系统小程序源码
  • uniapp常用声明周期
  • 【C++指南】inline内联函数详解
  • network request to https://registry.npmjs.org/xxx failed, reason: connect ETIM
  • Cesium影像纠偏:高德地图加载与坐标系纠偏技巧
  • 【机器学习(九)】分类和回归任务-多层感知机 (MLP) -Sentosa_DSML社区版
  • Github 2024-09-21Rust开源项目日报 Top10
  • Qt/C++ 了解NTFS文件系统,解析0x80 $Data属性,获取Run Lists数据列表
  • 仓颉编程语言4,遇到BUG求助
  • 数据中心里全速运行的处理器正在浪费能源
  • golang格式化输入输出
  • 【3D打印】使用simplify 3D切片更改Gcode手动断电续打、掉电、未打完继续打印、补救
  • Parallels Desktop 20 for Mac 推出:完美兼容 macOS Sequoia 与 Win11 24H2
  • 【Godot4.3】自定义数列类NumList
  • 【Qt | Qstring】Qstring详细介绍(字符串的添加、删除、修改、查询、截断、删除空白字符等)
  • Gitlab runner的使用示例(二):Maven + Docker 自动化构建与部署