내 페인트에서 하나의 페인트 앱을 준비했습니다. 어떤 것이 든 그릴 수 있습니다. 잘 작동합니다. 지우개 페인트를 지우려면 손가락 지우기를 준비하십시오. 다음 코드를 준비했습니다.안드로이드에서 손가락 지우개를 구현하는 방법은 무엇입니까?
이 코드는
mMyPaint.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if(paintAndEraserFlag==0){
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// path = new Path();
mPath.moveTo(event.getX(), event.getY());
mPath.lineTo(event.getX(), event.getY());
mArryLstPath.add(mPath);
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
mPath.lineTo(event.getX(), event.getY());
} else if (event.getAction() == MotionEvent.ACTION_UP) {
mPath.lineTo(event.getX(), event.getY());
}
}else if(paintAndEraserFlag==1){
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// path = new Path();
System.out.println("in path---");
mPath.moveTo(event.getX(), event.getY());
mPath.lineTo(event.getX(), event.getY());
mArryLstEarser.add(mEraserPath);
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
mPath.lineTo(event.getX(), event.getY());
} else if (event.getAction() == MotionEvent.ACTION_UP) {
mPath.lineTo(event.getX(), event.getY());
}
}
mMyPaint.invalidate();
return true;
}
});
내 페인트 및 지우개 객체,
mPaint.setDither(true);
mPaint.setColor(0xFFD2691E);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(30);
mEraser.setDither(true);
mEraser.setStyle(Paint.Style.STROKE);
mEraser.setStrokeJoin(Paint.Join.ROUND);
mEraser.setStrokeCap(Paint.Cap.ROUND);
mEraser.setStrokeWidth(15);
mEraser.setColor(0x00000000);
이 있습니다 사용자 지정보기에 내 무승부에 방법,
public void onDraw(Canvas canvas) {
if (myDrawBitmap == null) {
myDrawBitmap = Bitmap.createBitmap(480, 800,
Bitmap.Config.ARGB_8888);
mBmpDrawCanvas = new Canvas(myDrawBitmap);
mIntDrawArray = new int[myDrawBitmap.getWidth()
* myDrawBitmap.getHeight()];
}
if (mBmpDrawCanvas != null) {
myDrawBitmap.getPixels(mIntDrawArray, 0, myDrawBitmap.getWidth(),
0, 0, myDrawBitmap.getWidth(), myDrawBitmap.getHeight());
if (MyEraserActivity.paintAndEraserFlag == 0) {
for (Path path : MyEraserActivity.mArryLstPath) {
mBmpDrawCanvas.drawPath(MyEraserActivity.mPath, mPaint);
}
} else if (MyEraserActivity.paintAndEraserFlag == 1) {
for (Path path : MyEraserActivity.mArryLstEarser) {
mBmpDrawCanvas.drawPath(MyEraserActivity.mEraserPath,
mEraser);
System.out.println("in eraser---");
}
}
if (myDrawBitmap != null)
canvas.drawBitmap(myDrawBitmap, 0, 0, null);
}
}
그려진 페인트가 있으면 터치하는 부분을 지우고 싶습니다. 저를 도와주세요. 그것은 수도
는, u는 볼 수있는보기의 캔버스에 그 비트 맵을 그리기 질문 나는 stackoverflow에 게시했습니다. http://stackoverflow.com/questions/16229496/eraser-with-porterduff-mode-clear-always-draws-a-transparent-line – AndroidDev