我可以使用以下示例绘制一个半圆: Flutter how to draw semicircle (half circle)
但是,该Paint
对象似乎只接受一个Color
(使用Paint.color
)。我想添加一个RadialGradient
orLinearGradient
作为Color
. 那可能吗?
我可以使用以下示例绘制一个半圆: Flutter how to draw semicircle (half circle)
但是,该Paint
对象似乎只接受一个Color
(使用Paint.color
)。我想添加一个RadialGradient
orLinearGradient
作为Color
. 那可能吗?
是的!这完全可以使用Paint.shader
.
您可以直接使用创建渐变着色器,也可以dart:ui
使用Gradient.createShader
.
dart:ui
坡度import 'dart:ui' as ui;
// In your paint method
final paint = Paint()
..shader = ui.Gradient.linear(
startOffset,
endOffset,
[
color1,
color2,
],
);
在这里可以看到一个真实的例子。
painting
梯度import 'package:flutter/painting.dart';
// In your paint method
final paint = Paint()
..shader = RadialGradient(
colors: [
color1,
color2,
],
).createShader(Rect.fromCircle(
center: offset,
radius: radius,
));
这方面的一个例子可以在这里找到。
这两者实际上是相同的。Flutter 绘画版本只是在调用时将其转换为dart:ui
渐变(着色器createShader
) 。它存在的原因是绘画版本更适合预构建的小部件,例如Container
.