2017-11-29 15 views
0

ユーザーのタッチでポイントをプロットするカスタムビューを作成しました。パスからポイントを削除する方法CustomView

onDraw()

@Override 
protected void onDraw(Canvas canvas) { 
    mCanvas = canvas; 
    if (null != mPath && null != mPaint) 
     mCanvas.drawPath(mPath, mPaint); 
} 

onTouchEvent()

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    if (null == mPath) { 
     mPath = new Path(); 
    } 

    if (MotionEvent.ACTION_DOWN == event.getAction()) { 
     if (null != mOnDrawListener) { 
      mOnDrawListener.onStartDraw(this); 
     } 
     mPath.moveTo(event.getX(), event.getY()); 
     mPath.lineTo(event.getX(), event.getY()); 
    } else if (MotionEvent.ACTION_MOVE == event.getAction()) { 
     /* if (null != mOnDrawListener) { 
      mOnDrawListener.onDrawing(this, getBitmap()); 
     }*/ 
     mPath.lineTo(event.getX(), event.getY()); 
    } else if (MotionEvent.ACTION_UP == event.getAction()) { 
     if (null != mOnDrawListener) { 
      mOnDrawListener.onStopDrawing(this, getBitmap()); 
     } 
     mPath.lineTo(event.getX(), event.getY()); 
    } 
    invalidate(); 
    return true; 
} 

そして問題は、私は2 MODESPENとERASERを持っていました。 Mode.PENを選択した場合は、ビューを描画する必要があります。それは成功だった。

しかし、ユーザがMode.ERASERを選択すると、pathからその行または特定の点を削除したいと考えています。

EDIT

リスト内のポイントがwhileループのforループを使用してプロットしなければならないので、私はポイントを使用することはできません、それは事前に描画

感謝を遅くする

答えて

0

することができますキャンバス全体をクリアする

mCanvas.drawColor(Color.WHITE); 

また、このライブラリで、彼と同じ機能

Signature Pad

+0

ありません、私は唯一の – Godwin

+0

上記のライブラリがあなたのニーズを満たすことができ触れたポイントをクリアしたいですか? – WebInsight

+0

@Godwinので、図書館は助けられましたか、それともそれをカットしませんでしたか? – WebInsight

関連する問題