Advertisement
Guest User

Untitled

a guest
Feb 20th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.06 KB | None | 0 0
  1. ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT) {
  2. int currentState = 0;
  3.  
  4. @Override
  5. public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
  6. return false;
  7. }
  8.  
  9. @Override
  10. public void onMoved(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, int fromPos, RecyclerView.ViewHolder target, int toPos, int x, int y) {
  11.  
  12. super.onMoved(recyclerView, viewHolder, fromPos, target, toPos, x, y);
  13. }
  14.  
  15. @Override
  16. public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {
  17. //Remove swiped item from list and notify the RecyclerView
  18. viewHolder.itemView.clearFocus();
  19. }
  20.  
  21. // public static final float ALPHA_FULL = 1.0f;
  22. public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
  23. int maxMarginDp = 102;
  24. if (dX < -convertDpToPx(maxMarginDp)) {
  25. // if (dX == -1080) {
  26. // dX = -convertDpToPx(maxMarginDp);
  27. // }
  28. dX = -convertDpToPx(maxMarginDp);
  29. // currentState = ACTION_WAIT_FOR_USER;
  30. }
  31. if (actionState == ACTION_STATE_SWIPE) {
  32. View itemView = viewHolder.itemView;
  33. Paint paint = new Paint();
  34. Bitmap iconEdit;
  35. Bitmap iconDelete;
  36.  
  37. iconEdit = BitmapFactory.decodeResource(
  38. getContext().getResources(), R.drawable.edit_pencil);
  39. iconDelete = BitmapFactory.decodeResource(
  40. getContext().getResources(), R.drawable.big_delete);
  41.  
  42. iconEdit = Bitmap.createScaledBitmap(iconEdit, convertDpToPx(24), convertDpToPx(24), true);
  43. iconDelete = Bitmap.createScaledBitmap(iconDelete, convertDpToPx(24), convertDpToPx(24), true);
  44. paint.setColor(getActivity().getResources().getColor(R.color.colorPrimary));
  45. int dYForDeduct = convertPxTodDp(itemView.getBottom() - itemView.getTop()) / 30;
  46. c.drawRect((float) itemView.getRight() + dX,
  47. (float) itemView.getTop() + dYForDeduct,
  48. (float) itemView.getRight(),
  49. (float) itemView.getBottom() - dYForDeduct - convertDpToPx(15),
  50. paint);
  51. c.drawBitmap(iconDelete,
  52. (float) itemView.getRight() - convertDpToPx(18) - iconDelete.getWidth(),
  53. (float) itemView.getTop() + ((float) itemView.getBottom() - (float) itemView.getTop() - iconDelete.getHeight() - convertDpToPx(15)) / 2,
  54. paint);
  55. c.drawBitmap(iconEdit,
  56. (float) itemView.getRight() - convertDpToPx(36) - iconEdit.getWidth() - iconEdit.getWidth(),
  57. (float) itemView.getTop() + (itemView.getBottom() - itemView.getTop() - iconEdit.getHeight() - convertDpToPx(15)) / 2,
  58. paint);
  59. Paint paint2 = new Paint();
  60. paint2.setColor(getActivity().getResources().getColor(R.color.colorBackground));
  61. paint2.setTextSize(60);
  62. c.drawText(String.valueOf(dX), (float) itemView.getRight() - convertDpToPx(18) - iconDelete.getWidth(),
  63. (float) itemView.getTop() + ((float) itemView.getBottom() - (float) itemView.getTop() - iconDelete.getHeight() - convertDpToPx(15)) / 2, paint2);
  64. // Fade out the view as it is swiped out of the parent's bounds
  65. // final float alpha = ALPHA_FULL - Math.abs(dX) / (float) viewHolder.itemView.getWidth();
  66. // viewHolder.itemView.setAlpha(alpha);
  67. viewHolder.itemView.setTranslationX(dX);
  68. if (currentState == ACTION_WAIT_FOR_USER) {
  69. actionState = ACTION_STATE_DRAG;
  70. }
  71. } else {
  72. super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
  73. }
  74. }
  75.  
  76. private int convertDpToPx(int dp) {
  77. return Math.round(dp * (getResources().getDisplayMetrics().xdpi / DisplayMetrics.DENSITY_DEFAULT));
  78. }
  79.  
  80. private int convertPxTodDp(float px) {
  81. return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, px, getResources().getDisplayMetrics());
  82. }
  83. };
  84.  
  85. ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
  86. itemTouchHelper.attachToRecyclerView(recyclerView);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement