我试图让我的手机在手机上更容易一些,所以我想找到一种方法将一堆位图打印到另一个大位图上,所以我可以做一次,而不是每次都屏幕重绘。那么,有没有办法做到这一点?我知道有一种方法可以将打印到画布上的所有内容打印到位图,但我似乎无法将其工作。如果这是唯一的方法,有人可以解释如何做到这一点?提前谢谢。
这是我尝试过的东西,但它没有那么好用
Bitmap background;
Canvas canvas;
private void methodName() {
background = Bitmap.createBitmap(width, height, someKindOfConfigThing);
canvas = new Canvas(background);
canvas.drawBitmap(blahblah);
}
答案 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...
}
}