2017-08-07 6 views
1

質問があります。どのように私は動くビューをアニメーション化できますか?私は手紙を生み出し、移動中にそれを動かす(回転と拡大縮小)したい。私がアニメーションを開始するのは、私が望むのと同じように動作します。あるいは、私がmoveメソッドを実行するだけであれば動作しますが、一緒には動作しません。ここでは、コードの画面は以下のとおりです。 Moveメソッドは、あなたのMoveメソッドでビューを移動すると、それはと競合mainactivityAndroid Studio動画をアニメーション化する方法は?

public Letter (FrameLayout container, Random rnd, Animation animation){ 

     view = new TextView(container.getContext()); 
     letter = letters[rnd.nextInt(letters.length)]; 
     view.setText(letter); 
     view.setTextColor(Color.rgb(rnd.nextInt(256),rnd.nextInt(256),rnd.nextInt(256))); 
     view.setGravity(Gravity.CENTER); 
     container.addView(view); 
     x = container.getWidth(); 
     y = container.getHeight(); 
     vx = 2 * rnd.nextFloat() * (rnd.nextBoolean()?1:-1); 
     vy = 2 * rnd.nextFloat() * (rnd.nextBoolean()?1:-1); 
     view.startAnimation(animation); 
     move(); 
    } 

    public void move() { 
     x+= vx; 
     y+=vy; 
     FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams(); 
     params.leftMargin = Math.round(x); 
     params.topMargin = Math.round(y); 
     params.gravity = Gravity.LEFT+Gravity.TOP; 
     view.setLayoutParams(params); 
    } 

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 


    <!--<scale 
     android:fromXScale="1" 
     android:fromYScale="1" 
     android:toXScale="3" 
     android:toYScale="3" 
     android:pivotY="50%" 
     android:pivotX="50%" 
     android:duration="10000" 
     > 
    </scale> 
     --> 

    <rotate 
     android:fromDegrees="0" 
     android:toDegrees="360" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:duration = "3000" 
     android:repeatCount="infinite" 
     > 
    </rotate> 

</set> 
+1

、コードではなくテキストとしてコードを添付してください) –

+0

完了........... – Domooo93

答えて

0

のrunメソッドによって、すべてのビューのために呼び出されますアニメーションはビューのレイアウトを設定しようとしています。

アニメーションオブジェクトに固執し、回転とスケーリングと一緒にxmlでの移動を組み合わせるか、あなたの最善の策だと思うか、回転とスケーリングを実装する必要があります。

アニメーションのapplyTransformationをオーバーライドしてそこのビュー位置を取得して変更することもできます。

関連する問題