Sto provando ad animare disegnando un cerchio. A mio avviso personalizzato, hoCerchio di disegnare Android con percorso
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);
}
A intervalli, sto aggiornando mElapsedTime
e chiamando invalidate()
. Tuttavia, nulla viene disegnato sullo schermo. Ho provato diverse varianti, ma senza risultato. C'è qualcosa che sto sbagliando? C'è un modo più semplice per farlo? Data una percentuale di un cerchio, voglio essere in grado di fare in modo che gran parte del cerchio sia ciò che viene disegnato sullo schermo.
hai qualche codice? Im con lo stesso problema – Machete
@jmachete Ho aggiornato con un po 'di codice. – karl
Come posso disegnare questo al centro della tela? – user2095470