Android'de boş bir bitmap oluşturma ve tuval yoluyla çizim yapma


Yanıtlar:


197

Bu muhtemelen düşündüğünüzden daha basit:

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

İşte konuyla ilgili bulduğum bir dizi eğitim: Canvas Series ile Çizim


Bunu ayrı bir sınıf içinde oluşturursam, başka bir sınıftaki bitmap'e nasıl başvururum? Örneğin: Bitmap text = BitmapFactory.decodeResource (mContext.getResources (), Buraya ne yazmalı?); Bir opengl canlı duvar kağıdı içinde bir textView'a ihtiyacım var. Şimdiden teşekkürler
Steve C.

Merhaba @bigstones Bitmap oluştururken onSizeChanged () 'de bitmap oluşturmak için kodunuzu takip ediyorum OutOfMemoryError alıyorum lütfen bu stackoverflow.com/questions/24303759/…
user123456

SurfaceView kullanılırken bu başka bir iş parçacığında nasıl yapılabilir?
Zach H

-3

Bitmap.Config.ARGB_8888 kullanmayın

Bunun yerine 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, daha fazla bitmap veya büyük bitmap ile uğraşırken sizi OutOfMemory sorunlarına yönlendirebilir. Ya da daha iyisi, ARGB seçeneğinin kullanımından kaçınmayı deneyin.


12
ARGB_4444 artık kullanımdan kaldırıldı ( developer.android.com/reference/android/graphics/… )
Allen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.