2016-08-08 31 views
0

Viewを90度回転させて内容を更新し、再び90度回転させたいと思っています。回転回転中にコンテンツを表示して更新する

ObjectAnimator anim1 = (ObjectAnimator) AnimatorInflater.loadAnimator(getActivity().getApplicationContext(), R.animator.flip_animator); 

        anim1.setTarget(v); 
        anim1.setDuration(1000); 
        anim1.start(); 


ImageView box = (ImageView) v.findViewById(R.id.box); 
     Bitmap bg = BoxUtils.getBoxBg(boxSize, boxMargin, Color.RED); 
     box.setImageBitmap(bg); 


       anim1.setTarget(v); 
       anim1.setDuration(1000); 
       anim1.start(); 

のxml:

<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" 
    android:valueFrom="0" android:valueTo="90" android:propertyName="rotationY" > 
</objectAnimator> 

しかしその作業が、そのことは次の回転コードよりも前に、でも私は書かれていた更新用コードを次の90度を回転させる前に、その色を変えます。 ヘルプがありますか?

+0

だからあなたのことわざが90度、変色回転が何であるかを、再度回転させますか? –

+0

はい、これは私が欲しいものです。 –

答えて

0

問題は、オブジェクトがコードから非同期に回転することです。あなたは、立方体が最初の回転をしている間にコードがそこに座ってから、色を変えるように設計しました。何が起こるかは、コードがアニメーションを開始し、その後キューブが回転するにつれて実行を継続するため、早く色が変わるからです。

ビューは、最後の90を回転させ、その後の色を変えることになるエンドアクションを追加しますアニメーションの次の方法:

View v; 
v.animate() 
.rotationY(90) 
.setDuration(1000) 
.withEndAction(new Runnable() { 
    @Override 
    public void run() { 
    ImageView box = (ImageView) v.findViewById(R.id.box); 
    Bitmap bg = BoxUtils.getBoxBg(boxSize, boxMargin, Color.RED); 
    box.setImageBitmap(bg); 

    v.animate().rotationY(90).setDuration(1000).start(); 
    } 
}).start(); 
+0

'Runnable()'の 'run()'メソッドの中で 'v'にアクセスできません! –

+0

vはアニメーション化しようとしているビューを参照することを意図しています。私が使っているものが例です。あなたは 'findViewById(R.id.your-object)'を通して自分自身を宣言したいでしょう。 –

関連する問題