Advertisement
Guest User

Untitled

a guest
Apr 24th, 2014
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. public boolean onTouch(View view, MotionEvent event) {
  2. switch (MotionEventCompat.getActionMasked(event)) {
  3. ...
  4. case MotionEvent.ACTION_MOVE:
  5. if (!isDragging) {
  6. float deltaX = Math.abs(downX - event.getX());
  7. if (deltaX > touchSlop) {
  8. isDragging = true;
  9. view.startDrag(...);
  10. }
  11. }
  12. return true;
  13. }
  14.  
  15. return false;
  16. }
  17. });
  18.  
  19. public class DraggableListView extends ListView {
  20. private float diffX = 0, diffY = 0;
  21. private float lastX = 0, lastY = 0;
  22.  
  23. public DraggableListView(Context context) {
  24. super(context, null);
  25. }
  26.  
  27. public DraggableListView(Context context, AttributeSet attrs) {
  28. super(context, attrs);
  29. }
  30.  
  31. public DraggableListView(Context context, AttributeSet attrs, int defStyle) {
  32. super(context, attrs, defStyle);
  33. }
  34.  
  35. @Override
  36. public boolean onInterceptTouchEvent(MotionEvent event) {
  37. switch (MotionEventCompat.getActionMasked(event)) {
  38. case MotionEvent.ACTION_DOWN:
  39. diffX = 0;
  40. diffY = 0;
  41. lastX = event.getX();
  42. lastY = event.getY();
  43. break;
  44. case MotionEvent.ACTION_MOVE:
  45. diffX += Math.abs(event.getX() - lastX);
  46. diffY += Math.abs(event.getY() - lastY);
  47. lastX = event.getX();
  48. lastY = event.getY();
  49. if (diffX > diffY)
  50. return false;
  51. }
  52. return super.onInterceptTouchEvent(event);
  53. }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement