Click here to Skip to main content
13,092,862 members (97,329 online)
Rate this:
 
Please Sign up or sign in to vote.
See more:
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


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
Top Experts
Last 24hrsThis month


Advertise | Privacy |
Web04 | 2.8.170813.1 | Last Updated 10 Oct 2012
Copyright © CodeProject, 1999-2017
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