旋转ImageView后,OnClick侦听器不起作用?

时间:2012-08-09 12:43:32

标签: android android-imageview

我使用以下代码来旋转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看起来是旋转的,但无法正确点击。触发click事件的坐标是控件在旋转之前所在区域的坐标。

另外我尝试了另一个解决方案,我试着写一个自定义视图扩展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());
}

任何想法如何旋转控件本身并保持其可点击?

提前致谢,

1 个答案:

答案 0 :(得分:0)

动画不会改变您的观点位置。这是动画的常见问题。请看here