Создание пустого растрового изображения и рисование через холст в Android


106

Я хотел бы создать пустое растровое изображение и установить холст для этого растрового изображения, а затем нарисовать любую форму на растровом изображении.

Ответы:


197

Это, вероятно, проще, чем вы думаете:

int w = WIDTH_PX, h = HEIGHT_PX;

Bitmap.Config conf = Bitmap.Config.ARGB_8888; // see other conf types
Bitmap bmp = Bitmap.createBitmap(w, h, conf); // this creates a MUTABLE bitmap
Canvas canvas = new Canvas(bmp);

// ready to draw on that bitmap through that canvas

Вот серия уроков, которые я нашел по теме: Рисование с помощью Canvas Series


Если я создам это в отдельном классе, как я могу ссылаться на растровое изображение в другом классе. Например: Bitmap text = BitmapFactory.decodeResource (mContext.getResources (), Что сюда поместить?); Мне нужен textView в живых обоях opengl. Заранее спасибо
Стив С.

Привет @bigstones Я слежу за вашим кодом для создания растрового изображения в onSizeChanged (), когда я создаю растровое изображение, я получаю OutOfMemoryError, пожалуйста, см. Этот stackoverflow.com/questions/24303759/…
user123456

Как это можно сделать в другом потоке при использовании SurfaceView?
Zach H

-3

Не используйте Bitmap.Config.ARGB_8888

Вместо этого используйте int w = WIDTH_PX, h = HEIGHT_PX;

Bitmap.Config conf = Bitmap.Config.ARGB_4444; // see other conf types
Bitmap bmp = Bitmap.createBitmap(w, h, conf); // this creates a MUTABLE bitmap
Canvas canvas = new Canvas(bmp);

// ready to draw on that bitmap through that canvas

ARGB_8888 может вызвать проблемы с OutOfMemory при работе с большим количеством растровых изображений или большими растровыми изображениями. Или, что еще лучше, постарайтесь избегать использования самой опции ARGB.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.