2013-10-24 2 views
0

저는 customView가 있으며 해당 customView 클래스에서 onTouchEvent를 재정의했습니다. customView를 클릭하면 세 개의 호가 표시됩니다. 해당보기에서 클릭 이벤트를 처리하는 코드 아래에 구현했습니다.OnTouchListener는 3 회 클릭 후 무승부를 수행합니다.

@Override 
public boolean onTouchEvent(final MotionEvent event) { 

    if (event.getActionMasked() == MotionEvent.ACTION_UP) { 
    Paint p = new Paint(); 
    RectF rectF = new RectF(50, 50, 500, 500); 
    p.setColor(Color.BLACK); 
    canvas.drawArc(rectF, 0, 45, true, p); 
    canvas.drawArc(rectF, 145, 45, true, p); 
    canvas.drawArc(rectF, 260, 45, true, p); 
    invalidate(50, 50, 500, 500); 
    return performClick(); 
    } 
    return true; 
} 

내가 실수를 저질렀습니까?

+2

정확하게 무엇입니까? –

+0

문제는 그가 onTouchEvent에서 무엇이든 그립니다. – pskink

답변

0

클릭이 이미 완료되면 performClick()을 호출해야하는 이유는 무엇입니까?
이벤트를 처리 한 경우 true를 반환하고 그렇지 않으면 false를 반환해야합니다. 그래서 corect 변종이 있어야한다고 생각합니다

@Override 
public boolean onTouchEvent(final MotionEvent event) { 

    if (event.getActionMasked() == MotionEvent.ACTION_UP) { 
    Paint p = new Paint(); 
    RectF rectF = new RectF(50, 50, 500, 500); 
    p.setColor(Color.BLACK); 
    canvas.drawArc(rectF, 0, 45, true, p); 
    canvas.drawArc(rectF, 145, 45, true, p); 
    canvas.drawArc(rectF, 260, 45, true, p); 
    invalidate(50, 50, 500, 500); 
    return true; 
    } 
    return false; 
} 
+0

문제는 3 번의 클릭 후 & 그 제목에서 언급 한 문제입니다! – JAPS

+0

기다려, 어디 canvas 변수를 초기화 했습니까? onDraw 메서드를 보여줄 수 있습니까? – cooperok

+0

MotionEvent.Action_Move에 대해 완료되면 호를 한 번 클릭하여 그립니다. :) – JAPS

관련 문제