View跟手移动
经常会遇到用手指拖动控件移动的情况。看似高大上的效果其实很简单,就是根据触摸MotionEvent事件设置View的位置。

关键代码就是在onTouchEvent中去更新设置View的位置。Android提供了简单的方法:setTranslationX() 和setTranslationY() 。
public class MyView extends View {
private float mLastX = 0;
private float mLastY = 0;
...
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mLastX = event.getX();
mLastY = event.getY();
break;
case MotionEvent.ACTION_MOVE:
setTranslationX(getX() + (event.getX() - mLastX));
setTranslationY(getY() + (event.getY() - mLastY));
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
break;
}
return true;
}
}对于极少极少部分Android3.0以前的版本,可以通过nineoldandroids动画兼容库实现。

