Advertisement
Guest User

TouchDraw.java

a guest
Aug 19th, 2013
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.55 KB | None | 0 0
  1. package test;
  2.  
  3. import android.app.Activity;
  4. import com.example.canv.R;
  5. import android.graphics.Bitmap;
  6. import android.graphics.Canvas;
  7. import android.graphics.Color;
  8. import android.graphics.Paint;
  9. import android.graphics.Point;
  10. import android.os.Bundle;
  11. import android.util.Log;
  12. import android.view.Display;
  13. import android.view.MotionEvent;
  14. import android.view.View;
  15. import android.view.View.OnTouchListener;
  16. import android.widget.ImageView;
  17.  
  18. public class TouchDraw extends Activity implements OnTouchListener {
  19.   ImageView imageView;
  20.   Bitmap bitmap;
  21.   Canvas canvas;
  22.   Paint paint;
  23.   float downx = 0, downy = 0, upx = 0, upy = 0;
  24.   float lastX = 0, lastY = 0;
  25.  
  26.     boolean isNew = true;
  27.   @Override
  28.   public void onCreate(Bundle savedInstanceState) {
  29.     super.onCreate(savedInstanceState);
  30.     setContentView(R.layout.activity_touch_draw);
  31.  
  32.     imageView = (ImageView) this.findViewById(R.id.imageView1);
  33.  
  34.     Display currentDisplay = getWindowManager().getDefaultDisplay();
  35.     Point size = new Point();
  36.     currentDisplay.getSize(size);
  37.    
  38.     bitmap = Bitmap.createBitmap((int) size.x, (int) size.y,
  39.         Bitmap.Config.ARGB_8888);
  40.     canvas = new Canvas(bitmap);
  41.     paint = new Paint();
  42.     paint.setStrokeWidth(5);
  43.     paint.setColor(Color.GREEN);
  44.     imageView.setImageBitmap(bitmap);
  45.  
  46.     imageView.setOnTouchListener(this);
  47.   }
  48.  
  49.   public boolean onTouch(View v, MotionEvent event) {
  50.     int action = event.getAction();
  51.    
  52.    
  53.     switch (action) {
  54.     case MotionEvent.ACTION_DOWN:
  55.       isNew = true;
  56.       Log.w("onTouch", ("X: " + event.getX() + ", Y: " + event.getY()));
  57.       canvas.drawCircle(event.getX(), event.getY(), paint.getStrokeWidth()/2, paint);
  58.       imageView.invalidate();
  59.       /*
  60.       downx = event.getX();
  61.       downy = event.getY();
  62.       break;*/
  63.     case MotionEvent.ACTION_MOVE:
  64.         //canvas.drawCircle(event.getX(), event.getY(), 1, paint);
  65.         float x, y;
  66.         x = event.getX();
  67.         y = event.getY();
  68.        
  69.         if(!isNew)
  70.         {
  71.             canvas.drawLine(lastX, lastY, x, y, paint);
  72.             canvas.drawCircle(x, y, paint.getStrokeWidth()/2, paint);
  73.             imageView.invalidate();
  74.         }
  75.         else
  76.         {
  77.             isNew = false;
  78.         }
  79.        
  80.         lastX = x;
  81.         lastY = y;
  82.        
  83.       break;
  84.     /*case MotionEvent.ACTION_UP:
  85.       upx = event.getX();
  86.       upy = event.getY();
  87.       canvas.drawLine(downx, downy, upx, upy, paint);
  88.       imageView.invalidate();
  89.       break;
  90.     case MotionEvent.ACTION_CANCEL:
  91.       break;
  92.     default:
  93.       break;*/
  94.     }
  95.     return true;
  96.   }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement