Lona de Android a mapa de bits

He estado buscando en línea cómo convertir lo que está en un lienzo en un mapa de bits. He intentado varias maneras de hacer esto, como guardar la caché de dibujo a un mapa de bits, pero el resultado final es el mapa de bits de fondo parpadeando por un momento, a continuación, convertir en una pantalla en negro. La imagen de prueba se muestra sobre el fondo, pero no se superpone por el fondo de la próxima llamada de OnDraw .

 MainThreading{ ... if(notuptodate == true){ //call readyBackground to create the background bitmap this.mainPanel.readyBackground(canvas); //post the canvas surfaceHolder.unlockCanvasAndPost(canvas); //clean the Canvas canvas = null; //ready new Canvas canvas = this.surfaceHolder.lockCanvas();//lock the canvas to enable editing }//if not true if (MainThreading.notuptodate == false){ mainPanel.onDraw(canvas); }//if false ... }//mainthreading //this method is run first to create the Bitmap that on draw will use public void readyBackGround(Canvas canvas){ if (MainThreading.notuptodate){ //method used to draw multiple Bitmaps onto the canvas renderBackground(canvas); //private Bitmap, this is the supposed proper size of the bitmap backgroundBitmap=Bitmap.createBitmap(240, 320, Config.ARGB_8888); //set the canvas to turn whats on its self onto the bitmap. canvas.setBitmap(backgroundBitmap); //set boolean flag to false so renderBackground won't be called //untill it needs to be updated again MainThreading.notUpToDate = false; } //this method is called when notUpToDate = true @Override protected void onDraw(Canvas canvas){ if (this.threado.getBackground() != null){ canvas.drawBitmap(backgroundBitmap, 0, 0, null); } //this if statement is never activated if (this.threado.getBackground() == null){ Log.d("background nonexistant", "Importante!"); } //draw test object onto background test.DrawObject(canvas); //when MainThreading.notUpToDate = true isn't commented out, the //screen consistantly shows the background, but the test object isn't //drawn //MainThreading.notUpToDate = true; } 

Pruébalo de esta manera …

Crear un bitmap de bitmap del tamaño correcto utilizando Bitmap.createBitmap()

Crear una canvas instance que señale que este mapa de bits utilizando el constructor Canvas(Bitmap)

Dibuja el canvas

Utilice el bitmap

 public class CanvasToBitmap extends View { Paint paint = new Paint(); Rect mRect = new Rect(); Bitmap bitmap = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888); public myCanvas( Context context ) { super(context); Canvas canvas = new Canvas(bitmap); draw(canvas); } @Override public void onDraw(Canvas canvas) { mRect.set(0, 0, 200, 200); paint.setColor(Color.GREEN); paint.setStyle(Paint.Style.FILL); canvas.drawRect(mRect, paint); canvas.setBitmap(bitmap); ByteArrayOutputStream mByteArrayOutputStream = new ByteArrayOutputStream(); try{ bitmap.compress(Bitmap.CompressFormat.PNG, 100, mByteArrayOutputStream); bitmap = BitmapFactory.decodeStream(new ByteArrayInputStream(mByteArrayOutputStream.toByteArray())); mByteArrayOutputStream.flush(); mByteArrayOutputStream.close(); } catch (Exception e) {e.printStackTrace();} } } 

Crear una nueva instancia:

 CanvasToBitmap canvasToBitmap = new CanvasToBitmap(getBaseContext()); 

Obtener bitmap de canvasToBitmap:

 Bitmap bitmap = canvasToBitmap.bitmap; 
  • Android: creación de un mapa de bits con contenido de SurfaceView
  • ¿Puedo borrar la parte o el contenido de una imagen que se carga desde la tarjeta SD al lienzo o DrawView
  • ¿Cómo puedo modificar un mapa de bits de Android en el NDK para que pueda utilizarlo en Java?
  • Evitar las descargas de la aplicación de la tableta
  • Asegúrese de que el área del mapa de bits sea transparente al tocar -> de nuevo
  • Preservar la calidad de la imagen cuando decodifique el flujo en android
  • Inclinar un mapa de bits sólo en la dirección vertical
  • La sombra CardView no se procesa cuando se convierte en mapa de bits
  • Enmascarar (recortar) la imagen en el marco
  • Cómo convertir PictureDrawable en mapa de bits
  • Android Cómo reciclar el mapa de bits correctamente cuando se utiliza RecyclerView?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.