別の画像(フレームとして)の中に(家族の画像として)画像を描きたいのですが。
私はこれを処理するためにImageViewを使用しています。背景画像をドラッグできますが、ビューで前面画像が再度描画されませんでした。
これは、2つの画像をロードするための私のコードです。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〜 )は消去しません。
私が達成したいのは、0、0のmFrontImageと新しい位置x、yのmBackImageの両方を描画することです。