34 MyDrawable(
const SkRect& r) : fR(r), fSweep(0) {}
37 if (fSweep != sweep) {
43 void onDraw(
SkCanvas* canvas)
override {
45 paint.setAntiAlias(
true);
49 paint.setColor(0x800000FF);
52 paint.setColor(0x800FF000);
59 paint.setStrokeWidth(0);
64 SkRect onGetBounds()
override {
71 SkRect fRect = {20, 20, 220, 220};
90 rect.fBottom + font.getSize() * 5/4, font,
SkPaint(),
94 static void DrawArcs(
SkCanvas* canvas) {
101 paint.setAntiAlias(
true);
121 for (
size_t i = 0; i < std::size(gAngles); i += 2) {
123 DrawRectWithLines(canvas, r,
paint);
126 canvas->
drawArc(r, gAngles[i], gAngles[i+1],
false,
paint);
128 DrawLabel(canvas, r, gAngles[i], gAngles[i+1]);
138 paint.setAntiAlias(
true);
153 fAnimatingDrawable = sk_make_sp<MyDrawable>(
fRect);
161 canvas->
clear(0xFFDDDDDD);
167 if (fAnimatingDrawable) {
168 fAnimatingDrawable->setSweep(angle);
static void DrawString(SkCanvas *canvas, const char text[], SkScalar x, SkScalar y, const SkFont &font, const SkPaint &paint, Align align=kLeft_Align)