Ich habe eine benutzerdefinierte Ansicht, die ein paar Kreise und etwa 10 Bögen zeichnet, die ständig aktualisiert werden (Rotation und Größenänderung). Ich versuche, diesen ganzen Prozess zu animieren, aber ich konnte unter Canvas keine guten Praktiken dafür finden (ich kenne die Grundlagen - benutze dp anstelle von px und so weiter), aber ich weiß nicht, wie ich das richtig machen soll Animationsteil.Best Practices zum Animieren von Formen unter Android Canvas
Momentan durchlaufe ich alle meine Objekte, führe einige Berechnungen durch, um die zukünftige Position zu bestimmen und zeichne sie, aber es sieht abgehackt aus. Hier ist, was ich gerade mache:
@Override
protected void onDraw(Canvas canvas) {
for(Arch arch : arches) {
arch.update();
canvas.drawArc(arch.getRect(), -arch.getCurrentRotation(), arch.getSweepAngle(), true, paint);
}
//logo.draw(canvas);
canvas.drawCircle(width/2, height/2, circle_size, paint_opaque);
logo.draw(canvas);
int textX = (int) (width/2);
int textY = (int) ((height/2) - ((paint_text.descent() + paint_text.ascent())/2));
canvas.drawText(text, textX, textY, paint_text);
invalidate();
}