Click here to Skip to main content
11,573,618 members (63,488 online)
Rate this: bad
good
Please Sign up or sign in to vote.
See more: Android
The problem is that the square draws all the time, and I want to draw as we let go of finger. I want to see the square, but I don't know how to resolve it, do you have any suggestions?

This is my code:
@Override
public boolean onTouchEvent(MotionEvent event)
{
    float x = event.getX();
    float y = event.getY();
    switch (event.getAction())
    {
        case MotionEvent.ACTION_DOWN:
                    if (square) {
                    	rect = new Rect();
                    	mX = x;
                        mY = y;
                	invalidate();
		    }
                    draw_mod = true;
                    break;
                case MotionEvent.ACTION_MOVE:                    
                    if (square && draw_mod) {
                    	rect.set((int)mX, (int)mY, 
                                 (int)event.getX(), (int)event.getY());
                    	mCanvas.drawRect(rect, mPaint);
                	invalidate();
		     }
                     break;
                case MotionEvent.ACTION_UP
                        draw_mod = false;
                	break;
            }
            return true;
        }:
Posted 10-Oct-12 0:47am
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

You can't just do the drawing when you need to register the touch event.

I'm assuming that
rect
is a member variable, but it doesn't follow the naming convention like your other variables. If it isn't a private member variable, then make it one.

You will need to override the
onDraw()
method of the view that you want to draw on.

protected void onDraw (Canvas canvas)
{
    super.onDraw(canvas);
 
    //Now draw your rect ontop of whatever was just drawn.
    canvas.drawRect(rect, mPaint);
}
  Permalink  
v2
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

<img src="http://imageshack.us/a/img580/8503/examplexc.png" border="0" />
Uploaded with ImageShack.us

Most of works, only I have problem with drawing. I do not want this effect as the picture.
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS


Advertise | Privacy | Mobile
Web04 | 2.8.150624.2 | Last Updated 10 Oct 2012
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100