Cette classe vous aidera:
public class BallView extends View {
public float x;
public float y;
private final int r;
public int color;
public void setColor(int color) {
mPaint.setColor(color);
}
@Override
public float getX() {
return x;
}
@Override
public void setX(float x) {
this.x = x;
}
@Override
public float getY() {
return y;
}
@Override
public void setY(float y) {
this.y = y;
}
public int getR() {
return r;
}
private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
//construct new ball object
public BallView(Context context, float x, float y, int r) {
super(context);
//color hex is [transparncy][red][green][blue]
mPaint.setColor(0xFF15FFD4); //not transparent. color is white
this.x = x;
this.y = y;
this.r = r; //radius
}
//qcalled by invalidate()
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(x, y, r, mPaint);
}
}
Vous pouvez l'utiliser pour dessiner une balle dans votre activité principale en utilisant mainView.addView(mBallView)
pour l'ajouter à la vue et BallView.invalidate
de tirer réellement et selon ce que les mécanismes que vous voulez Vous pouvez utiliser la méthode setter pour définir le rayon du cercle au fur et à mesure que le temps passe ou que vous le souhaitez. Assurez-vous d'utiliser un Timer qui appelle RedrawHandler.post()
et redessine la vue avec les valeurs de rayon mises à jour.