2

IPhone のカバーフローのようなアニメーターをやろうとしていますが、もう少し単純です。今、回転させてから画像をフルスクリーンにしようとしていますが、何も起こりません。

            ImageView i = (ImageView) FindViewById(args.Position);

            var disp = WindowManager.DefaultDisplay;
            var height = disp.Height;
            var width = disp.Width;


            ObjectAnimator anim = ObjectAnimator.OfInt(i, "rotationY", 0, 180);
            ObjectAnimator scaleX = ObjectAnimator.OfInt(i, "scaleX", width);
            ObjectAnimator scaleY = ObjectAnimator.OfInt(i, "scaleY", height);
            AnimatorSet set = new AnimatorSet();
            set.Play(anim).With(scaleX).With(scaleY);

コードの何が問題になっていますか? なぜ何も起こらないのですか?

4

1 に答える 1

9

実際にアニメーションを開始するにはStart()、あなたを呼び出す必要があります。AnimatorSet

このPlay()メソッドは、実際にはアニメーションを再生しません。セットが再生するアニメーションを指定し、AnimatorSet.Builder追加の制約 ( など) を設定するために使用できる を作成しますWith()

第 2 に、ObjectAnimators はすべて整数プロパティを探していますが、回転スケールのプロパティには float が必要です。

ObjectAnimator.OfFloat()代わりに使用する必要があります。

于 2014-07-11T16:08:16.033 に答える