如何在画布上绘制3位图

克里斯托弗·M。

我正在尝试将3个imageViews合并为一个位图,而我使用的是画布,这是函数

private Bitmap createSingleImageFromMultipleImages() {

    Bitmap formBitmap = getBitmapFromImageView(formView);
    Bitmap idFrontBitmap = getBitmapFromImageView(idFrontView);
    Bitmap idBackBitmap = getBitmapFromImageView(idBackView);

    Bitmap allBitmaps = null;

    int width, height = 0;

    width = formBitmap.getWidth() + idFrontBitmap.getWidth() + idBackBitmap.getWidth();
    if (formBitmap.getHeight() > idFrontBitmap.getHeight()) {
        height = formBitmap.getHeight();
    } else {
        height = idFrontBitmap.getHeight();
    }

    allBitmaps = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);

    Canvas comboImage = new Canvas(allBitmaps);

    comboImage.drawBitmap(formBitmap, formBitmap.getWidth(), 0f, null); //this is not drawn
    comboImage.drawBitmap(idFrontBitmap, formBitmap.getWidth(), 0f, null); //this is not drawn
    comboImage.drawBitmap(idBackBitmap, idFrontBitmap.getWidth(), 0f, null); //this is drawn

    return allBitmaps;
}

//这会将ImageView转换为位图

public Bitmap getBitmapFromImageView(ImageView imageView) {
    imageView.setDrawingCacheEnabled(true);
    Bitmap scaledBitmap = imageView.getDrawingCache();
    return scaledBitmap;
}

目前只绘制一个图像,其他部分为空,我已经确认ImageView不为null

结果的屏幕截图。

在此处输入图片说明

大卫·梅登雅克

如评论中所述,您正在将位图绘制在彼此的顶部,因此只有最后一项可见。

您将必须正确放置图像,而不仅仅是将它们绘制在任何地方。

Canvas有多种方法可以实现此目的,一种可能性是drawBitmap(bitmap, left, top, paint)像您一样使用,但应为偏移量使用不同的值。

// first, x = 0
comboImage.drawBitmap(formBitmap, 0f, 0f, null);
// second, offset by first width
comboImage.drawBitmap(idFrontBitmap, formBitmap.getWidth(), 0f, null);
// last, offset by first and second width
comboImage.drawBitmap(idBackBitmap, formBitmap.getWidth() + idFrontBitmap.getWidth(), 0f, null);

这应该工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在HTML画布上绘制位图文件?

来自分类Dev

如何在HTML画布上绘制位图文件?

来自分类Dev

如何在画布上绘制位图,同时注意位图的Alpha值?

来自分类Dev

如何在画布的右上方绘制位图

来自分类Dev

如何在SurfaceView上绘制位图?

来自分类Dev

Antroid 5位图绘制麻烦

来自分类Dev

Antroid 5位图绘制麻烦

来自分类Dev

如何在画布上随机绘制对象

来自分类Dev

[WPF]如何在画布上绘制网格?

来自分类Dev

如何在画布上绘制RelativeLayout?

来自分类Dev

如何在画布上绘制读取JSON?

来自分类Dev

如何在画布元素上绘制视频?

来自分类Dev

Java:如何在画布上绘制?

来自分类Dev

沿着画布上的路径绘制位图

来自分类Dev

沿着画布上的路径绘制位图

来自分类Dev

在 Xamarin.Android 画布上绘制位图

来自分类Dev

在画布上绘制d3形状的面积图?

来自分类Dev

如何在画布上裁剪选定区域的位图?

来自分类Dev

如何通过画布DrawBitmap绘制位图的部分

来自分类Dev

如何在位图(Winforms)上绘制清晰的文本?

来自分类Dev

如何在位图图像上绘制对数轴

来自分类Dev

EaselJS /画布-如何在图A之后绘制图B,以使图B在图A下

来自分类Dev

如何在MacOS上创建每像素16位的位图?

来自分类Dev

如何在画布Android中的onDraw()方法中快速绘制位图

来自分类Dev

如何在Android画布上绘制局部圆角矩形?

来自分类Dev

如何在Android画布上绘制圆角多边形?

来自分类Dev

如何在画布上重新绘制以调整大小而不会模糊?

来自分类Dev

如何在画布上绘制平滑的椭圆形

来自分类Dev

如何在画布上绘制绘图线动画