アニメーションの開始についてサポートが必要です。最初のクラス (Graph) を取得しました。GameView クラスで Graph オブジェクトのアニメーションを開始したいと考えています。
class Graph {
private AnimationDrawable drawable;
...
public Graph(View view, AnimationDrawable drawable){
this.view = view;
this.drawable = drawable;
ancho = drawable.getIntrinsicWidth();
alto = drawable.getIntrinsicHeight();
radioColision = (alto+ancho)/4;
}
public void drawGraph(Canvas canvas){
canvas.save();
int x=(int) (posX+ancho/2);
int y=(int) (posY+alto/2);
canvas.rotate((float) angulo,(float) x,(float) y);
drawable.setBounds((int)posX, (int)posY,(int)posX+ancho, (int)posY+alto);
drawable.draw(canvas);
canvas.restore();
int rInval = (int) Math.hypot(ancho,alto)/2 + MAX_VELOCIDAD;
view.invalidate(x-rInval, y-rInval, x+rInval, y+rInval);
}
public void animate(){
drawable.start();
}
....
GameView クラス:
public class GameView extends View {
....
private static AnimationDrawable drawableFish;
private Graph fish;
public GameView(Context context, AttributeSet attrs) {
super(context, attrs);
drawableFish = (AnimationDrawable) context.getResources().getDrawable(R.drawable.animation);
fish = new Graph(this, drawableFish);
}
@Override protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
fish.drawGraph(canvas);
fish.animate();
}
....
アニメーションが定義されている xml は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/fishmaligno"
android:duration="200"/>
<item
android:drawable="@drawable/fish"
android:duration="200"/>
</animation-list>
メソッド animate() でアニメーションを開始してみました。
すべてがうまく機能していますが、アニメーションを開始できません。
どんな助けにも感謝します。ありがとうございました!