我拍照并获得一个位图(位图),当我拍摄图片时,我想留在顶部的图像(bitmao2)。因此,为了保存带有图像的图片,我使用了画布。我想把bitmap2放在位图上,确切地说当我拍照时它是如何定位的。 这是我做的事情
Bitmap bitmap = BitmapFactory.decodeByteArray(data,0,data.length);
int width=bitmap.getWidth();
int height=bitmap.getHeight();
Bitmap bitmap2 = GameActivity.decodeSampledBitmapFromResource(gameactivity.getResources(), R.drawable.fire16,width1 );
Matrix matrix = new Matrix();
matrix.postRotate(90);
bitmap=Bitmap.createBitmap(bitmap,0,0,width,height,matrix,true);
ImageView image = (ImageView) gameactivity.findViewById(R.id.imageView4);
LayoutParams layout = (LayoutParams) image.getLayoutParams();
int margin = layout.topMargin;
Bitmap cs = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);
Canvas canvas = new Canvas(cs);
canvas.drawBitmap(bitmap, 0f, 0f, null);
canvas.drawBitmap(bitmap2,0,margin, null);
(我旋转图像,因为它处于横向模式,即使我以纵向模式拍摄,所以我更正了)
问题是即使尺寸Canvas =位图的尺寸,我的代码执行后我看不到整个图像,它有点裁剪,当然bitmap2不是应该的位置。 也许我应该采取屏幕的尺寸??
答案 0 :(得分:1)
您可以使用drawBitmap(位图位图,Rect src,Rect dst,Paint paint)绘制位图:
Rect src = new Rect(0, 0, bitmap2.getWidth(), bitmap2.getHeight());
Rect dst = new Rect(0, 0, width, height);
canvas.drawBitmap(bitmap2, src, dst, null);
此外,如果您旋转图像而不是宽度和高度将在此交换:
bitmap=Bitmap.createBitmap(bitmap,0,0,width,height,matrix,true);