Android结合图片

时间:2012-05-17 17:05:00

标签: android eclipse image

Hy,我试图搜索这个但不是很运气 最相似的就是这一个 http://ketankantilal.blogspot.com/2011/03/how-to-combine-images-and-store-to.html 无论如何,我正在为Android开发。 问题是我有png格式的图像(或jpg,因为我的应用程序的bmp非常大)。 如何从上到下组合三个图像。 我不需要将它们保存在SD上只是为了显示它们。 谢谢,如果存在类似的答案问题,我很抱歉。

1 个答案:

答案 0 :(得分:2)

您可以使用Canvas,然后使用适当的顶部和左侧偏移绘制每个Bitmap(假设每个图像都加载到Bitmap对象中)。

您可以将下一个位图的顶部偏移量增加先前绘制的位图的总大小。

查看http://developer.android.com/reference/android/graphics/Canvas.html

示例:

public void stackImages(Context ctx)
{
    // base image, if new images have transparency or don't fill all pixels
    // whatever is drawn here will show.
    Bitmap result = Bitmap.createBitmap(400, 400, Bitmap.Config.ARGB_8888);

    // b1 will be on top
    Bitmap b1 = Bitmap.createBitmap(400, 200, Bitmap.Config.ARGB_8888);

    // b2 will be below b1
    Bitmap b2 = Bitmap.createBitmap(400, 200, Bitmap.Config.ARGB_8888);

    Canvas c = new Canvas(result);

    c.drawBitmap(b1, 0f, 0f, null);

    // notice the top offset
    c.drawBitmap(b2, 0f, 200f, null);

    // result can now be used in any ImageView
    ImageView iv = new ImageView(ctx);
    iv.setImageBitmap(result);

    // or save to file as png
    // note: this may not be the best way to accomplish the save
    try {
           FileOutputStream out = new FileOutputStream(new File("some/file/name.png"));
           result.compress(Bitmap.CompressFormat.PNG, 90, out);
    } catch (Exception e) {
           e.printStackTrace();
    }
}