Próbuję animować rysowanie koła. W moim widoku niestandardowego, mamKoło rysowania systemu Android ze ścieżką
private final Paint mPaint = new Paint() {
{
setDither(true);
setStyle(Paint.Style.STROKE);
setStrokeCap(Paint.Cap.ROUND);
setStrokeJoin(Paint.Join.ROUND);
setColor(Color.BLUE);
setStrokeWidth(30.0f);
setAntiAlias(true);
}
};
...
protected void onDraw(Canvas canvas) {
super.onDraw();
if (mOval == null) {
mOval = new RectF(getLeft(), getTop(), getRight(), getBottom());
}
if (mPath == null) {
mPath = new Path();
mPath.moveTo(0, getHeight()/2);
}
float sweepAngle = Math.min((float) mElapsedTime/1000 * 60 * 1, 1) * 360;
if (sweepAngle == 0) {
mPath.reset();
} else if (mCurrentAngle != sweepAngle) {
mPath.arcTo(mOval, mCurrentAngle, sweepAngle);
}
mCurrentAngle = sweepAngle;
canvas.drawPath(mPath, mPaint);
}
w odstępach, mam aktualizacji mElapsedTime
i nazywając invalidate()
. Jednak nic nie jest rysowane na ekranie. Próbowałem kilku odmian, ale bezskutecznie. Czy jest coś, co robię źle? Czy istnieje prostszy sposób na zrobienie tego? Biorąc pod uwagę pewien procent koła, chcę móc sprawić, aby ta część koła była tym, co jest rysowane na ekranie.
masz kodu? Im z tym samym problemem – Machete
@jmachete Zaktualizowałem trochę kodu. – karl
Jak mogę narysować to na środku płótna? – user2095470