我正在使用下面的代码来旋转 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());
}
知道如何旋转控件本身并使其保持可点击状态吗?
提前致谢,