0

我需要在 a 上做一个旋转动画RelativeLayout,我使用NineOldAndroid了动画库:

View v = findViewById(R.id.wrap_btnSelect);
ObjectAnimator t1 = ObjectAnimator.ofFloat(
        v, "rotation", 0.0f, -45.0f);
t1.setStartDelay(500);
t1.setDuration(1500);
t1.start();

动画效果很好,点击位置也会相应更新ICS,但Gingerbread点击位置停留在旧位置,这使得视图不可点击。

我能做些什么来解决 android 2.3 上的这个问题吗?

原始布局:

原始布局

试图实现这一目标:

旋转布局

编辑:此布局由 4 个正方形构成,每个正方形都是TextView.

4

1 回答 1

1

您可以扩展View以自己处理触摸事件,并根据单击时的旋转值来判断您在哪个区域单击。

像这样的东西:

public class WrapBtnSelect extends RelativeLayout {
    // Copy onstructors here

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            double x = (event.getX() / getWidth()) * 2 - 1;
            double y = (event.getY() / getHeight()) * 2 - 1;
            double angle = Math.atan2(y, x);
            // Do your actions depending on the angle here

            return true;
        }
        return super.onTouchEvent(event);
    }
}
于 2014-01-27T09:44:52.433 回答