Створення порожнього растрового зображення та малювання хоч полотна в Android


105

Я хотів би створити порожню растрову карту і встановити полотно для цієї растрової карти, а потім намалювати будь-яку фігуру на растровій карті.

Відповіді:


196

Це, мабуть, простіше, ніж ви думаєте:

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

Ось серія навчальних посібників, які я знайшов на тему: Малювання із полотна серії


Якщо я створюю це в окремому класі, як би я посилався на растрову карту в іншому класі. Наприклад: текст Bitmap = 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.


12
ARGB_4444 зараз застарілий ( developer.android.com/reference/android/graphics/… )
Ален
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.