UVi*_*Vic 5 paint dart flutter
我试图让一个圆圈看起来更物质。所以我想给它一个阴影,我如何在颤振中使用 Paint 类来做到这一点
thumbPaint = Paint()
..color = Colors.white,
..style = PaintingStyle.fill;
Run Code Online (Sandbox Code Playgroud)
您还可以使用drawShadow方法。
@override
void paint(Canvas canvas, Size size) {
var path = Path();
var myPaint = Paint();
var center = Offset(size.width / 2, size.height / 2);
myPaint.color = Color(0xff007AFF);
path.addOval(Rect.fromCircle(center: center, radius: 50.0));
canvas.drawShadow(path, Color(0xff000000), 3, true);
canvas.drawPath(path, myPaint);
}
Run Code Online (Sandbox Code Playgroud)
结果:
小智 6
您可以使用MaskFilter来创建阴影效果。在绘制真正的circleA之前,只需使用MaskFilter Paint绘制一个半径稍大的circleB,您就可以获得带有阴影效果的circleA。
查看用以下代码绘制的这个圆圈。
class Painter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
double radius = 100.0;
canvas.translate(size.width/2, size.height/2);
Offset center = Offset(0.0, 0.0);
// draw shadow first
Path oval = Path()
..addOval(Rect.fromCircle(center: center, radius: radius+10));
Paint shadowPaint = Paint()
..color = Colors.black.withOpacity(0.3)
..maskFilter = MaskFilter.blur(BlurStyle.normal, 50);
canvas.drawPath(oval, shadowPaint);
// draw circle
Paint thumbPaint = Paint()
..color = Colors.white
..style = PaintingStyle.fill;
canvas.drawCircle(center, radius, thumbPaint);
}
@override
bool shouldRepaint(Painter oldDelegate) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 -2
将其包裹在 Boxdecoration 中。它具有 BoxShadow 属性。
您可以点击此链接。
new Container(
decoration: new BoxDecoration(
color: Colors.white,
border: new Border.all(
color: Colors.green,
width: 5.0,
style: BorderStyle.solid
),
borderRadius: new BorderRadius.only(
topLeft: new Radius.elliptical(40.0, 10.0),
bottomLeft: new Radius.circular(20.0),
),
boxShadow: [
new BoxShadow(
color: Colors.red,
offset: new Offset(20.0, 10.0),
)
],
image: new DecorationImage(
image: new AssetImage('assets/images/JL-Logo-150.png'),
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3344 次 |
| 最近记录: |