2013-10-24 38 views
0

我有自定義視圖並且在該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

等待,你在哪裏初始化了畫布變量?你可以顯示你的onDraw方法嗎? – cooperok

+0

如果完成MotionEvent.Action_Move,它將在單擊時繪製弧線。 :) – JAPS

相關問題