3

以下のコードを使用して ImageView コントロールを回転させています

ImageView Iv = new this.findViewById(id)
RotateAnimation a = new RotateAnimation(0, 60);
a.setFillAfter(true);
a.setFillBefore(false);
a.setDuration(0);
Iv.startAnimation(a);

上記のコードの問題は、ImageView が回転しているように見えますが、正しくクリックできないことです。クリック イベントをトリガーする座標は、回転する前にコントロールが持っていた領域の座標です。

また、別の解決策を試しました。ImageView を拡張するカスタム ビューを作成し、onDraw() でコントロール キャンバスを回転させようとしましたが、この解決策はコントロールを回転させず、コントロールのコンテンツを回転させました。

@Override
protected void onDraw(Canvas canvas)
{
canvas.rotate(60, getWidth() / 2, getHeight() / 2);
super.onDraw(canvas);
canvas.save();
canvas.restore();
}

@Override
protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(heightMeasureSpec, widthMeasureSpec);
setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth());
}

コントロール自体を回転させてクリック可能にするにはどうすればよいですか?

前もって感謝します、

4

1 に答える 1

0

アニメーションはビューの位置を変更しません。これは、アニメーションの一般的な問題です。こちらを ご覧 ください.

于 2012-08-09T13:01:10.687 に答える