1

アニメーションの開始についてサポートが必要です。最初のクラス (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() でアニメーションを開始してみました。

すべてがうまく機能していますが、アニメーションを開始できません。

どんな助けにも感謝します。ありがとうございました!

4

0 に答える 0