Я пытаюсь сделать свою игру немного проще по телефону, поэтому я пытаюсь найти способ распечатать кучу растровых изображений на другой большой, поэтому я могу сделать это один раз, а не каждый раз, когда экран перерисовывается. Итак, есть ли способ сделать это? Я знаю, что есть способ распечатать все, что напечатано на холсте, до растрового изображения, но я не могу заставить его работать. Если это единственный способ, кто-то может объяснить, как это сделать? Спасибо заранее.
Вот что я пробовал, но так не получилось
Bitmap background;
Canvas canvas;
private void methodName() {
background = Bitmap.createBitmap(width, height, someKindOfConfigThing);
canvas = new Canvas(background);
canvas.drawBitmap(blahblah);
}
Что бы вы сделали, так это создать основной растровый рисунок, прикрепить его к холсту, на который вы можете рисовать.
Bitmap bitmap = Bitmap.createBitmap(width, height, Config.RGB_565);
Canvas c = new Canvas(bitmap);
Вы можете нарисовать (части) растровые изображения на этом холсте с помощью
c.drawBitmap(anotherBitmap, transformMatrix, paint);
Чтобы прикрепить основной растровый рисунок к представлению, вы должны создать новый ImageView, вызовите setImageBitmap, передав основное растровое изображение и задав его как текущее содержимое с помощью setContentView.
Если вы хотите объединить несколько растровых изображений в другой большой и повторно использовать это, вы уже на правильном пути! Покажите нам, что вы сделали, и сообщите нам, каков результат. Думаю, мы можем вам помочь:)
[обновление] должно быть возможно сохранить эту новую растровую карту на диск или временно сохранить ее как переменную:
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...
}
}