flutter - Shader LinearGradient 着色器

import 'package:flutter/material.dart';

/**
 * Author : wn
 * Email : maoning20080808@163.com
 * Date : 2025/6/19 13:47
 * Description : 着色器
 */
class MyShaderWidget extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "着色器",
      home: Scaffold(
        appBar: AppBar(
          title: Text("着色器 - 标题"),
        ),
        body: CustomPaint(
          painter: MyShader(),
        ),
      ),
    );
  }
}

//着色器
class MyShader extends CustomPainter {

  @override
  void paint(Canvas canvas, Size size) {
    final shader = LinearGradient(colors: [Colors.red, Colors.blue]).createShader(Rect.fromLTWH(30, 30, 200, 200));
    canvas.drawRect(Rect.fromLTWH(30, 30, 200, 200), Paint()..shader = shader);
  }

  @override
  bool shouldRepaint(covariant CustomPainter oldDelegate) {
    return false;
  }

}

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐