1

問題があり、機能する解決策を見つけることができません。だから、ここに私の問題があります。ImageView向きを変えると、自分自身を 90 度回転させる必要があります。私はそれを行い、画像は実際にはかなり回転していますが、アニメーションが終了すると、画像は以前の位置にリセットされます.

画像を回転させるために使用したコードは次のとおりです。

   Matrix matrix = mImageView.getImageMatrix();
                    RectF dst = new RectF();
                    matrix.mapRect(dst, new RectF(mImageView.getDrawable().getBounds()));
                    mAnimation = new RotateAnimation(0.0f, -90.0f, Animation.RELATIVE_TO_SELF, 0.5f,
                            Animation.RELATIVE_TO_SELF, 0.5f);
                    mAnimation.setDuration(5000);
                    mImageView.startAnimation(mAnimation);
                    mImageView.setImageMatrix(matrix);
                    mCurrentOrientation = 1;
4

2 に答える 2

1

これを使用して、実行後にアニメーションを永続化できます。

mAnimation.setFillEnabled(true);
mAnimation.setFillAfter(true);
于 2013-05-10T15:36:15.933 に答える
0

できることの 1 つは、imageview を既に回転したバージョンの画像に設定し、-90 度から 0 度に回転させることです。これは、すでに使用している API で機能します。2 つの呼び出しを行った場合、その直後の 1 つは途切れることなく正しく機能します。

もう 1 つのオプションは、新しい API バージョンを使用することです。Object Animator アニメーションは、ビューを元の位置に戻しません。詳細はこちら。

ObjectAnimator でドローアブルを回転するには?

コードは単純ですが、これはジンジャーブレッドでは機能しません。

于 2013-05-10T15:02:53.627 に答える