Click here to Skip to main content
11,428,876 members (62,358 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 1: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)



Advertise | Privacy | Mobile
Web02 | 2.8.150428.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