0

で3を回転させようとしimageViewsていrotateAnimationます。30msごとに回転する角度を計算します。角度が変更された場合は、rotateAnimationを作成します。

rpmAnim=new RotateAnimation((float)Rpmcurrentdegree, (float)Rpmdegree, ivNadel.getWidth()/2, ivNadel.getHeight()/2);
rpmAnim.setFillEnabled(true);
rpmAnim.setFillAfter(true);

...次に、imageViewのアニメーションを開始します。

 ivNadel.startAnimation(rpmAnim);

回転は正常に機能しますが、角度が変わらない場合は、元の位置に戻ります。誰かが理由を知っていますか?

4

1 に答える 1

0

rpmAnimにsetAnimationListenerを設定します。

rpmAnim.setAnimationListener(new AnimationListener() {
        @Override
        public void onAnimationEnd(Animation arg0) {

          // here rotate the image

        }

        @Override
        public void onAnimationRepeat(Animation animation) {}
        @Override
        public void onAnimationStart(Animation animation) {}
    });

画像を回転させるに

  1. カスタム画像ビューを作成するためにImageViewを拡張します
  2. onDrawをオーバーライドする
  3. 回転角を設定します
  4. カスタム画像ビューを無効にする

オーバーライドされたものは次のonDraw ようになります。

 protected void onDraw(Canvas canvas) {
     canvas.save()
     canvas.rotate(your rotation angle...)
     super.onDraw(canvas)
     canvas.restore()
 }
于 2012-05-02T09:41:44.230 に答える