Membuat bitmap kosong dan menggambar melalui kanvas di Android


Jawaban:


197

Ini mungkin lebih sederhana dari yang Anda pikirkan:

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

Berikut adalah serangkaian tutorial yang saya temukan tentang topik ini: Menggambar dengan Seri Kanvas


Jika saya membuatnya dalam kelas terpisah, bagaimana saya mereferensikan bitmap di kelas lain. Misalnya: Bitmap text = BitmapFactory.decodeResource (mContext.getResources (), What to put here?); Saya membutuhkan textView dalam wallpaper hidup terbuka. Terima kasih sebelumnya
Steve C.

Hai @bigstones Saya mengikuti kode Anda untuk membuat bitmap di onSizeChanged () ketika saya membuat bitmap, saya mendapatkan OutOfMemoryError, silakan lihat stackoverflow.com/questions/24303759/…
user123456

Bagaimana ini bisa dilakukan di utas lain saat menggunakan SurfaceView?
Zach H

-3

Jangan gunakan Bitmap.Config.ARGB_8888

Sebaliknya gunakan 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 dapat membawa Anda ke masalah OutOfMemory saat berurusan dengan lebih banyak bitmap atau bitmap besar. Atau lebih baik lagi, coba hindari penggunaan opsi ARGB itu sendiri.


12
ARGB_4444 sudah tidak digunakan lagi sekarang ( developer.android.com/reference/android/graphics/… )
Allen
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.