0
Ich versuche herauszufinden, wie man eine Ansicht im Uhrzeigersinn füllen.Android - drehen und füllen Animation
Ich habe herausgefunden, wie man ein Bild dreht, aber nicht sicher, wie man rotiert und füllt.
Ich versuche herauszufinden, wie man eine Ansicht im Uhrzeigersinn füllen.Android - drehen und füllen Animation
Ich habe herausgefunden, wie man ein Bild dreht, aber nicht sicher, wie man rotiert und füllt.
diese Klasse verwendet, um einen Kreis zu erstellen:
public class Circle extends View {
private static final int START_ANGLE_POINT = 270;
private final Paint paint;
private RectF rect;
private float angle;
public Circle(Context context, AttributeSet attrs) {
super(context, attrs);
final int strokeWidth = 60;
Point[] points = new Point[3];
points[0] = new Point(7, 13);
points[1] = new Point(13, 19);
points[2] = new Point(21, 9);
paint = new Paint();
paint.setAntiAlias(true);
paint.setStyle(Paint.Style.FILL);
//Circle color
paint.setColor(Theme.darkRedColour());
//Initial Angle (optional, it can be zero)
angle = 0;
}
@Override
protected void onDraw(Canvas canvas) {
if (rect == null) {
DisplayMetrics metrics = App.getAppContext().getResources().getDisplayMetrics();
int densityDpi = (int)metrics.density;
densityDpi = 3;
int canvasW = getWidth();
int canvasH = getHeight();
Point centerOfCanvas = new Point(canvasW/2, canvasH/2);
int rectW = 100; // * (densityDpi - 1);
int rectH = 100; // * (densityDpi - 1);
int left = centerOfCanvas.x - (rectW/2);
int top = centerOfCanvas.y - (rectH/2);
int right = centerOfCanvas.x + (rectW/2);
int bottom = centerOfCanvas.y + (rectH/2);
rect = new RectF(left, top, right, bottom);
}
super.onDraw(canvas);
canvas.drawArc(rect, START_ANGLE_POINT, angle, true, paint);
}
public float getAngle() {
return angle;
}
public void setAngle(float angle) {
this.angle = angle;
}
}
Dann einen AnimiationListener verwendet und den Winkel aktualisiert.