将位图打印到其他位图android

时间:2010-12-22 18:34:15

标签: android canvas bitmap

我试图让我的手机在手机上更容易一些,所以我想找到一种方法将一堆位图打印到另一个大位图上,所以我可以做一次,而不是每次都屏幕重绘。那么,有没有办法做到这一点?我知道有一种方法可以将打印到画布上的所有内容打印到位图,但我似乎无法将其工作。如果这是唯一的方法,有人可以解释如何做到这一点?提前谢谢。

这是我尝试过的东西,但它没有那么好用

Bitmap background; 
Canvas canvas; 

private void methodName() {
    background = Bitmap.createBitmap(width, height, someKindOfConfigThing); 
    canvas = new Canvas(background);
    canvas.drawBitmap(blahblah);
}

2 个答案:

答案 0 :(得分:1)

您要做的是创建主位图,将其附加到您可以绘制的画布上。

Bitmap bitmap = Bitmap.createBitmap(width, height, Config.RGB_565);
Canvas c = new Canvas(bitmap);

您可以使用

将(部分)位图绘制到此画布
c.drawBitmap(anotherBitmap, transformMatrix, paint);

要将主位图附加到视图,您需要创建一个新的ImageView,调用setImageBitmap传递主位图,并使用setContentView将其设置为当前内容视图。

答案 1 :(得分:0)

如果您想将多个位图组合到另一个大位图并重复使用,那么您已经采用了正确的方法!告诉我们你做了什么,告诉我们结果如何。我想我们可以帮助你:))

[更新]应该可以将这个新位图保存到光盘或暂时将其存储为变量:

private void methodName() {
    background = Bitmap.createBitmap(width, height, someKindOfConfigThing); 
    canvas = new Canvas(background);
    // drawing on the canvas should change the bitmap "background" too
    canvas.drawBitmap(blahblah);
    FileOutputStream fos = null;
    try {
        fos = new FileOutputStream("/path/to/image.png");
        background.compress(Bitmap.CompressFormat.PNG, 100, fos);
        fos.close();
    } catch (Exception e) {
        // catching...
    }
}