1
我想繪製一幅圖像(作爲家庭圖片即另一幅圖像(作爲一個框架))。移動背景圖像,同時保持正面圖像靜止在畫布上
我正在使用ImageView來處理這個問題。我可以拖動我的背景圖片,但視圖沒有再次繪製正面圖像。
這是我加載兩張圖片的代碼。 mFrontImage是'框架',mBackImage是我們拖動的'背景'。 這些代碼行沒有問題。
// Create a new bitmap scaled from original bitmap
mFrontImage = Bitmap.createBitmap(bmpTemp, 0, 0, fw, fh, fmatrix, true);
mCanvas = new Canvas(mFrontImage);
mPaint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.DST_OVER));
mCanvas.drawBitmap(mFrontImage, 0, 0, mPaint);
mCanvas.drawBitmap(mBackImage, 0, 0, mPaint);
mImageV = (ImageView) this.findViewById(R.id.image_view);
mImageV.setImageBitmap(mFrontImage);
mImageV.setOnTouchListener(this);
而這些代碼來處理觸摸運動:
case MotionEvent.ACTION_DOWN:
downx = event.getX();
downy = event.getY();
_moving = true;
break;
case MotionEvent.ACTION_MOVE:
if (_moving)
{
dx = event.getX() - downx;
dy = event.getY() - downy;
downx = event.getX();
downy = event.getY();
x += dx;
y += dy;
mCanvas.drawColor(Color.TRANSPARENT, Mode.CLEAR);
mCanvas.drawBitmap(mFrontImage, 0, 0, mPaint);
mCanvas.drawBitmap(mBackImage, x, y, mPaint);
mImageEdit.invalidate();
}
break;
case MotionEvent.ACTION_UP:
_moving = false;
break;
線drawColor將擦除畫布,然後drawBitmap(mBackImage〜)但不drawBitmap(mFrontImage〜) 。
我想要實現的是將mFrontImage繪製在0,0和mBackImage的新位置x,y上。