下面简单的做了一个拖拽效果的方法,举例给按钮做一个拖拽的效果。
拖拽功能事件:
java代码:
复制代码
注册事件
java代码:
拖拽功能事件:
java代码:
- private OnTouchListener touch = new OnTouchListener() {
- int[] temp = new int[] { 0, 0 };
- public boolean onTouch(View v, MotionEvent event) {
- int eventaction = event.getAction();
- Log.i("&&&", "onTouchEvent:" + eventaction);
- int x = (int) event.getRawX();
- int y = (int) event.getRawY();
- switch (eventaction) {
- case MotionEvent.ACTION_DOWN: //
- temp[0] = (int) event.getX();
- temp[1] = y - v.getTop();
- break;
- case MotionEvent.ACTION_MOVE: // touch drag with the ball
- v.layout(x - temp[0], y - temp[1], x + v.getWidth() - temp[0], y - temp[1] + v.getHeight());
- v.postInvalidate();
- break;
- case MotionEvent.ACTION_UP:
- break;
- }
- return false;
- }
- };
- private OnTouchListener touch = new OnTouchListener() {
- int[] temp = new int[] { 0, 0 };
- public boolean onTouch(View v, MotionEvent event) {
- int eventaction = event.getAction();
- Log.i("&&&", "onTouchEvent:" + eventaction);
- int x = (int) event.getRawX();
- int y = (int) event.getRawY();
- switch (eventaction) {
- case MotionEvent.ACTION_DOWN: //
- temp[0] = (int) event.getX();
- temp[1] = y - v.getTop();
- break;
- case MotionEvent.ACTION_MOVE: // touch drag with the ball
- v.layout(x - temp[0], y - temp[1], x + v.getWidth() - temp[0], y - temp[1] + v.getHeight());
- v.postInvalidate();
- break;
- case MotionEvent.ACTION_UP:
- break;
- }
- return false;
- }
- };
复制代码
注册事件
java代码:
- button.setOnTouchListener(touch);