class MyPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
var paint = Paint()
…isAntiAlias = true
…strokeWidth = 1.0
…style = PaintingStyle.fill
…color = Colors.green
…invertColors = false;
canvas.drawCircle(Offset(size.width/2, size.height/2), size.width/2, paint);
}
//在实际场景中正确利用此回调可以避免重绘开销,本示例我们简单的返回true
@override
bool shouldRepaint(CustomPainter oldDelegate) => true;
}
class MyPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
var paint = Paint()
…isAntiAlias = true
…strokeWidth = 1.0
…style = PaintingStyle.fill
…color = Colors.green
…invertColors = false;
canvas.drawCircle(Offset(size.width/2, size.height/2), size.width/2, paint);
canvas.drawCircle(Offset(size.width/2, size.height/2), size.width/2.5, paint…color=Colors.red);
canvas.drawCircle(Offset(size.width/2, size.height/2), size.width/4, paint…color=Colors.deepPurpleAccent);
}
//在实际场景中正确利用此回调可以避免重绘开销,本示例我们简单的返回true
@override
bool shouldRepaint(CustomPainter oldDelegate) => true;
}
class MyPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
var paint = Paint()
…isAntiAlias = true
…strokeWidth = 1.0
…style = PaintingStyle.fill
…color = Colors.green
…invertColors = false;
canvas.drawCircle(Offset(size.width/2, size.height/6), size.width/6, paint);
canvas.drawCircle(Offset(size.width/2, size.height/6*1.4), size.width/6, paint…color=Colors.deepPurpleAccent);
canvas.drawCircle(Offset(size.width/2, size.height/6*1.8), size.width/6, paint…color=Colors.deepOrange);
canvas.drawCircle(Offset(size.width/2, size.height/6*2.2), size.width/6, paint…color=Colors.amber);
canvas.drawCircle(Offset(size.width/2, size.height/6*2.6), size.width/6, paint…color=Colors.blue);
canvas.drawCircle(Offset(size.width/2, size.height/6*3.0), size.width/6, paint…color=Colors.purple);
}
//在实际场景中正确利用此回调可以避免重绘开销,本示例我们简单的返回true
@override
bool shouldRepaint(CustomPainter oldDelegate) => true;
}
class MyPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
var paint = Paint()
…isAntiAlias = true
…strokeWidth = 1.0
…style = PaintingStyle.fill
…color = Colors.red
…invertColors = false;
canvas.drawCircle(Offset(size.width/2, size.height/6), size.width/6, paint…color=Colors.red.withOpacity(0.1));
canvas.drawCircle(Offset(size.width/2, size.height/6*1.4), size.width/6, paint…color=Colors.red.withOpacity(0.14));
canvas.drawCircle(Offset(size.width/2, size.height/6*1.8), size.width/6, paint…color=Colors.red.withOpacity(0.18));
canvas.drawCircle(Offset(size.width/2, size.height/6*2.2), size.width/6, paint…color=Colors.red.withOpacity(0.22));
canvas.drawCircle(Offset(size.width/2, size.height/6*2.6), size.width/6, paint…color=Colors.red.withOpacity(0.26));
canvas.drawCircle(Offset(size.width/2, size.height/6*3.0), size.width/6, paint…color=Colors.red.withOpacity(0.30));
canvas.drawCircle(Offset(size.width/2, size.height/6*3.0), size.width/6, paint…color=Colors.red.withOpacity(0.34));
canvas.drawCircle(Offset(size.width/2, size.height/6*3.0), size.width/6, paint…color=Colors.red.withOpacity(0.38));
canvas.drawCircle(Offset(size.width/2, size.height/6*3.0), size.width/6, paint…color=Colors.red.withOpacity(0.42));
canvas.drawCircle(Offset(size.width/2, size.height/6*3.0), size.width/6, paint…color=Colors.red.withOpacity(0.46));
canvas.drawCircle(Offset(size.width/2, size.height/6*3.0), size.width/6, paint…color=Colors.red.withOpacity(0.46));
}
//在实际场景中正确利用此回调可以避免重绘开销,本示例我们简单的返回true
@override
bool shouldRepaint(CustomPainter oldDelegate) => true;
}
PaintingStyle.fill(用画笔绘制边框)
class MyPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
var paint = Paint()
…isAntiAlias = true
…strokeWidth = 1.0
…style = PaintingStyle.stroke
…color = Colors.green
…invertColors = false;
canvas.drawCircle(Offset(size.width/2, size.height/2), size.width/2, paint);
}
//在实际场景中正确利用此回调可以避免重绘开销,本示例我们简单的返回true
@override
bool shouldRepaint(CustomPainter oldDelegate) => true;
}
class MyPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
var paint = Paint()
…isAntiAlias = true
…strokeWidth = 1.0
…style = PaintingStyle.stroke
…color = Colors.green
…invertColors = false;
canvas.drawCircle(Offset(size.width/2, size.height/2), size.width/2, paint);
canvas.drawCircle(Offset(size.width/2, size.height/2), size.width/2.5, paint…color=Colors.red);
canvas.drawCircle(Offset(size.width/2, size.height/2), size.width/4, paint…color=Colors.deepPurpleAccent);
}
//在实际场景中正确利用此回调可以避免重绘开销,本示例我们简单的返回true
@override
bool shouldRepaint(CustomPainter oldDelegate) => true;
}
class MyPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
var paint = Paint()
…isAntiAlias = true
…strokeWidth = 1.0
…style = PaintingStyle.stroke
…color = Colors.green
…invertColors = false;
canvas.drawCircle(Offset(size.width/2, size.height/6), size.width/6, paint);
canvas.drawCircle(Offset(size.width/2, size.height/6*1.4), size.width/6, paint…color=Colors.deepPurpleAccent);
canvas.drawCircle(Offset(size.width/2, size.height/6*1.8), size.width/6, paint…color=Colors.deepOrange);
canvas.drawCircle(Offset(size.width/2, size.height/6*2.2), size.width/6, paint…color=Colors.amber);
canvas.drawCircle(Offset(size.width/2, size.height/6*2.6), size.width/6, paint…color=Colors.blue);
canvas.drawCircle(Offset(size.width/2, size.height/6*3.0), size.width/6, paint…color=Colors.purple);
文末
当你打算跳槽的时候,应该把“跳槽成功后,我能学到什么东西?对我的未来发展有什么好处”放在第一位。这些东西才是真正引导你的关键。在跳槽之前尽量“物尽其用”,把手头上的工作做好,最好是完成了某个项目或是得到提升之后再走。跳槽不是目的,而是为了达到最终职业目标的手段
最后祝大家工作升职加薪,面试拿到心仪Offer
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
文末
当你打算跳槽的时候,应该把“跳槽成功后,我能学到什么东西?对我的未来发展有什么好处”放在第一位。这些东西才是真正引导你的关键。在跳槽之前尽量“物尽其用”,把手头上的工作做好,最好是完成了某个项目或是得到提升之后再走。跳槽不是目的,而是为了达到最终职业目标的手段
最后祝大家工作升职加薪,面试拿到心仪Offer
[外链图片转存中…(img-uLYiiqYf-1714703520480)]
[外链图片转存中…(img-EQtAGGol-1714703520483)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!