Advertisement
Guest User

Untitled

a guest
Apr 16th, 2014
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 KB | None | 0 0
  1. int cards[] = {R.drawable.c1,R.drawable.c2,R.drawable.c3,R.drawable.c4,R.drawable.c5,R.drawable.c6,
  2. R.drawable.c7,R.drawable.c8,R.drawable.c9,R.drawable.c10,R.drawable.c11,R.drawable.c12,R.drawable.c13};
  3. ImageView[] Images = new ImageView[cards.length];
  4. for (int i = 0; i < cards.length; i++) {
  5. Images[i] = new ImageView(this);
  6.  
  7. RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
  8. RelativeLayout.LayoutParams.WRAP_CONTENT,
  9. RelativeLayout.LayoutParams.WRAP_CONTENT);
  10. if (i != 0) {
  11.  
  12. params.addRule(RelativeLayout.ALIGN_LEFT,i-1);
  13. params.leftMargin= 40;
  14. Images[i].setImageBitmap(BitmapFactory.decodeResource(getResources(), cards[i]));
  15. Images[i].setId(i);
  16. Images[i].setOnTouchListener(this);
  17. layout.addView(Images[i], params);
  18. } else {
  19. Images[i].setImageBitmap(BitmapFactory.decodeResource(getResources(), cards[i]));
  20. Images[i].setId(i);
  21. Images[i].setOnTouchListener(this);
  22. layout.addView(Images[i], params);
  23. }
  24.  
  25. }
  26.  
  27. //Ontouch
  28.  
  29. @Override
  30. public boolean onTouch(View p_v, MotionEvent p_event){
  31. params = (RelativeLayout.LayoutParams)p_v.getLayoutParams();
  32. switch (p_event.getAction()){
  33. case MotionEvent.ACTION_DOWN:
  34. {
  35. status = START_DRAGGING;
  36. imageView1 = new ImageView(this);
  37. imageView1.setImageBitmap(p_v.getDrawingCache());
  38.  
  39. m_lastTouchX = p_event.getX();
  40. m_lastTouchY = p_event.getY();
  41.  
  42. break;
  43. }
  44. case MotionEvent.ACTION_UP:
  45. {
  46. status=STOP_DRAGGING;
  47. break;
  48. }
  49. case MotionEvent.ACTION_MOVE:
  50. {
  51. if (status == START_DRAGGING) {
  52. m_dx = p_event.getX() - m_lastTouchX;
  53. m_dy = p_event.getY() - m_lastTouchY;
  54.  
  55. m_posX = m_prevX + m_dx;
  56. m_posY = m_prevY + m_dy;
  57. System.out.println("Dragging");
  58. params.leftMargin = (int) m_posX;
  59.  
  60. params.topMargin=(int) m_posY;
  61. p_v.bringToFront();
  62. p_v.setLayoutParams(params);
  63. imageView1.invalidate();
  64. m_prevX = m_posX;
  65. m_prevY = m_posY;
  66.  
  67. }
  68.  
  69.  
  70. break;
  71.  
  72. }
  73. }
  74. return true;
  75. }
  76.  
  77. private ImageView[] Images;
  78. private boolean mDragging = false;
  79. private Rect mImageRect = new Rect();
  80. int mX = 0;
  81. int mY = 0;
  82. private Bitmap mBitmap;
  83. private ImageView mImage;
  84.  
  85. @Override
  86. public boolean onTouchEvent(MotionEvent ev) {
  87.  
  88. switch (ev.getAction()) {
  89. case MotionEvent.ACTION_DOWN:
  90. mX = (int) ev.getX();
  91. mY = (int) ev.getY();
  92.  
  93. for (ImageView image : Images) {
  94. image.getHitRect(mImageRect);
  95.  
  96. if (mImageRect.contains(mX, mY)) {
  97. mDragging = true;
  98.  
  99. mImage = image;
  100. mBitmap = ((BitmapDrawable) mImage.getDrawable())
  101. .getBitmap();
  102.  
  103. mImage.setVisibility(View.GONE);
  104. postInvalidate();
  105. break;
  106. }
  107. }
  108.  
  109. break;
  110. case MotionEvent.ACTION_MOVE:
  111. if (mDragging) {
  112. mX = (int) ev.getX();
  113. mY = (int) ev.getY();
  114.  
  115. postInvalidate();
  116. }
  117. break;
  118. case MotionEvent.ACTION_UP:
  119. if (mDragging) {
  120. mDragging = false;
  121. mBitmap = null;
  122. mImage.setVisibility(View.VISIBLE);
  123. mImage = null;
  124. }
  125. break;
  126. }
  127.  
  128. return super.onTouchEvent(ev);
  129. }
  130.  
  131. @Override
  132. protected void dispatchDraw(Canvas canvas) {
  133. super.dispatchDraw(canvas);
  134.  
  135. if (mBitmap != null) {
  136. canvas.drawBitmap(mBitmap, mX, mY, null);
  137. }
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement