Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainActivity_ extends Activity {
- ImageView im;
- public static List<Point> points;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- im=(ImageView) findViewById(R.id.imageView1);
- Context c = im.getContext();
- DrawView pic=new DrawView(c);
- }
- public class DrawView extends ImageView implements View.OnTouchListener{
- Bitmap resultingImage;
- private Paint paint;
- int DIST = 2;
- boolean flgPathDraw = true;
- Point mfirstpoint = null;
- boolean bfirstpoint = false;
- Point mlastpoint = null;
- Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
- R.drawable.gallery_12);// convert image to bitmap
- Context mContext;
- public Bitmap get(){
- return resultingImage;
- }
- public DrawView(Context c) {
- super(c);
- mContext = c;
- setFocusable(true);
- setFocusableInTouchMode(true);
- paint = new Paint(Paint.ANTI_ALIAS_FLAG);
- paint.setStyle(Paint.Style.STROKE);
- paint.setPathEffect(new DashPathEffect(new float[] { 10, 20 }, 0));
- paint.setStrokeWidth(5);
- paint.setColor(Color.WHITE);
- this.setOnTouchListener(this);
- points = new ArrayList<Point>();
- bfirstpoint = false;
- }
- public DrawView(Context context, AttributeSet attrs) {
- super(context, attrs);
- mContext = context;
- setFocusable(true);
- setFocusableInTouchMode(true);
- paint = new Paint(Paint.ANTI_ALIAS_FLAG);
- paint.setStyle(Paint.Style.STROKE);
- paint.setStrokeWidth(2);
- paint.setColor(Color.WHITE);
- this.setOnTouchListener(this);
- points = new ArrayList<Point>();
- bfirstpoint = false;
- }
- public void onDraw(Canvas canvas) {
- canvas.drawBitmap(bitmap, 0, 0, null);
- Path path = new Path();
- boolean first = true;
- for (int i = 0; i < points.size(); i += 2) {
- Point point = points.get(i);
- if (first) {
- first = false;
- path.moveTo(point.x, point.y);
- } else if (i < points.size() - 1) {
- Point next = points.get(i + 1);
- path.quadTo(point.x, point.y, next.x, next.y);
- } else {
- mlastpoint = points.get(i);
- path.lineTo(point.x, point.y);
- }
- }
- canvas.drawPath(path, paint);
- }
- public boolean onTouch(View view, MotionEvent event) {
- /// if(event.getAction() != MotionEvent.ACTION_DOWN)
- // return super.onTouchEvent(event);
- Point point = new Point();
- point.x = (int) event.getX();
- point.y = (int) event.getY();
- if (flgPathDraw) {
- if (bfirstpoint) {
- if (comparepoint(mfirstpoint, point)) {
- // points.add(point);
- points.add(mfirstpoint);
- flgPathDraw = false;
- showcropdialog();
- } else {
- points.add(point);
- }
- } else {
- points.add(point);
- }
- if (!(bfirstpoint)) {
- mfirstpoint = point;
- bfirstpoint = true;
- }
- }
- invalidate();
- Log.e("Hi ==>", "Size: " + point.x + " " + point.y);
- if (event.getAction() == MotionEvent.ACTION_UP) {
- Log.d("Action up*******~~~~~~~>>>>", "called");
- mlastpoint = point;
- if (flgPathDraw) {
- if (points.size() > 12) {
- if (!comparepoint(mfirstpoint, mlastpoint)) {
- flgPathDraw = false;
- points.add(mfirstpoint);
- showcropdialog();
- }
- }
- }
- }
- return true;
- }
- private boolean comparepoint(Point first, Point current) {
- int left_range_x = (int) (current.x - 3);
- int left_range_y = (int) (current.y - 3);
- int right_range_x = (int) (current.x + 3);
- int right_range_y = (int) (current.y + 3);
- if ((left_range_x < first.x && first.x < right_range_x)
- && (left_range_y < first.y && first.y < right_range_y)) {
- if (points.size() < 10) {
- return false;
- } else {
- return true;
- }
- } else {
- return false;
- }
- }
- public void fillinPartofPath() {
- Point point = new Point();
- point.x = points.get(0).x;
- point.y = points.get(0).y;
- points.add(point);
- invalidate();
- }
- public void resetView() {
- points.clear();
- paint.setColor(Color.WHITE);
- paint.setStyle(Style.STROKE);
- flgPathDraw = true;
- invalidate();
- }
- private void showcropdialog() {
- Toast.makeText(getApplicationContext(),"Rnning show crop dialog", Toast.LENGTH_LONG);
- }
- }
- @Override
- protected void onResume() {
- super.onResume();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement