我正在尝试构建一个绘画应用程序。申请分为3个部分:
- 最初,应用程序具有白色背景,用户可以使用不同的画笔大小和不同的颜色在画布上绘画
- 用户可以将画布图像保存到 sd 卡
- 用户可以从 sd 卡上传图像并再次在图像上绘画
第 1 点和第 2 点工作正常,我可以在白色背景上绘画。但是第 3 点,当我从画廊上传任何图像并尝试在图像上绘画时,之前绘制的路径会消失,只显示新路径。
代码 :
onDraw(Canvas canvas){
mBitmap = Bitmap.createBitmap(320, 480, Bitmap.Config.ARGB_8888);
mCanvas = new Canvas(mBitmap);
mPath = new Path();
mBitmapPaint = new Paint(Paint.DITHER_FLAG);
canvas.drawColor(Color.WHITE);
canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
canvas.drawPath(mPath, mPaint);
}
onTouch - >
case MotionEvent.ACTION_DOWN:
mPath.reset();
mPath.moveTo(x, y);
mX = x;
mY = y;
invalidate();
break;
case MotionEvent.ACTION_MOVE:
float dx = Math.abs(x - mX);
float dy = Math.abs(y - mY);
if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
mPath.quadTo(mX, mY, (x + mX) / 2, (y + mY) / 2);
mX = x;
mY = y;
}
invalidate();
break;
case MotionEvent.ACTION_UP:
mPath.lineTo(mX, mY);
mCanvas.drawPath(mPath, mPaint);
mPath.reset();
break;
mBitmap = BitmapFactory.decodeFile(filePath); -----this is from sd card