Creazione di una bitmap vuota e disegno tramite tela in Android


Risposte:


197

Questo è probabilmente più semplice di quanto pensi:

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

Ecco una serie di tutorial che ho trovato sull'argomento: Drawing with Canvas Series


Se lo creo all'interno di una classe separata, come farei riferimento alla bitmap in un'altra classe. Ad esempio: Bitmap text = BitmapFactory.decodeResource (mContext.getResources (), cosa mettere qui?); Ho bisogno di un textView all'interno di uno sfondo animato opengl. Grazie in anticipo
Steve C.

@Bigstones Ciao Sto seguendo il codice per la creazione di bitmap in onSizeChanged () quando io sono la creazione di bitmap sto ottenendo OutOfMemoryError consulta questo stackoverflow.com/questions/24303759/...
user123456

Come è possibile farlo in un altro thread durante l'utilizzo di SurfaceView?
Zach H

-3

Non utilizzare Bitmap.Config.ARGB_8888

Usa invece 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 può farti avere problemi con OutOfMemory quando hai a che fare con più bitmap o bitmap di grandi dimensioni. O meglio ancora, prova a evitare l'uso dell'opzione ARGB stessa.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.