问题
I'm using a CustomPainter
to draw in Flutter like this:
@override
void paint(Canvas canvas, Size size) {
canvas.drawRect(...);
canvas.drawImage(...);
...
}
How to draw an Icon
on canvas
?
回答1:
Create a Paragraph
containing the code point in the correct font, style it as needed, then draw it.
final icon = Icons.add;
var builder = ui.ParagraphBuilder(ui.ParagraphStyle(
fontFamily: icon.fontFamily,
))
..addText(String.fromCharCode(icon.codePoint));
var para = builder.build();
para.layout(const ui.ParagraphConstraints(width: 60));
canvas.drawParagraph(para, const Offset(20, 20));
回答2:
@Richard Heap and @pskink based on your answers I was trying and came up with this: Thank you guys this is what I too was searching for.
final icon = Icons.add;
TextPainter textPainter = TextPainter(textDirection: TextDirection.rtl);
textPainter.text = TextSpan(text: String.fromCharCode(icon.codePoint),
style: TextStyle(fontSize: 40.0,fontFamily: icon.fontFamily));
textPainter.layout();
textPainter.paint(canvas, Offset(50.0,50.0));
来源:https://stackoverflow.com/questions/57922017/flutter-how-to-paint-an-icon-on-canvas