Chciałbym utworzyć pustą bitmapę i ustawić płótno na tę bitmapę, a następnie narysować dowolny kształt na mapie bitowej.
Chciałbym utworzyć pustą bitmapę i ustawić płótno na tę bitmapę, a następnie narysować dowolny kształt na mapie bitowej.
Odpowiedzi:
To prawdopodobnie prostsze, niż myślisz:
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
Oto seria samouczków, które znalazłem na ten temat: Rysowanie za pomocą serii Canvas
Nie używaj Bitmap.Config.ARGB_8888
Zamiast tego użyj 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 może spowodować problemy z OutOfMemory, gdy masz do czynienia z większą liczbą bitmap lub dużymi bitmapami. Lub jeszcze lepiej, spróbuj unikać używania samej opcji ARGB.