Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Limpiar el lienzo con Canvas.drawColor ()

Estoy tratando de cambiar la imagen de fondo de una vista personalizada con cierto éxito. La imagen cambiará pero el problema es que todavía veo rastros de la vieja imagen. Cuando intento despejar el lienzo antes de dibujar la nueva imagen, no parece trabajar. I crear un mapa de bits para almacenar la imagen. Al cambiar la imagen, llamo a Canvas.drawColor () antes de dibujar la nueva imagen pero la imagen antigua persiste. He intentado drawColor (0), drawColor (Color.BLACK), c.drawColor (0, PorterDuff.Mode.CLEAR), y ninguno de los trabajos anteriores. Como tal, tuve que publicar esto para la revisión de las mentes más experimentadas que la mía.

El código real es como sigue:

  • ¿Es onResume () llamado antes onActivityResult ()?
  • Establecer layout_column y layout_row en GridLayout mediante programación
  • PhoneGap - Forzando orientación horizontal
  • Efecto de imagen de cabecera de Spotify ListView
  • Cómo imprimir local timezone en formato posix en java (android)?
  • ¿Cómo puedo usar layout_weight en RecyclerView o Vista de elemento ListView para que los elementos de igual altura llenen el espacio disponible en la pantalla?
  • private int bgnd; private boolean switching; public void setBgnd(int incoming){ switching = true; switch (incoming){ case R.drawable.image1: bgnd = incoming; this.invalidate(); break; case R.drawable.image2: bgnd = incoming; this.invalidate(); break; } } protected void onDraw(Canvas c){ if(switching == true){ Bitmap b = BitmapFactory.decodeResource(getResources(), bgnd); c.drawColor(0, PorterDuff.Mode.CLEAR); c.drawBitmap(b, 0, 0, null); switching = false; }else{ Bitmap b = BitmapFactory.decodeResource(getResources(), bgnd); c.drawBitmap(b, 0, 0, null); } } 

  • ¿Los elementos de preferencia se reajustan automáticamente?
  • MediaRecorder.stop () colgando con Android 4.0 (ICS)
  • ¿Cómo puedo cambiar la imagen de un ImageView?
  • Configurar el tamaño de un DialogFragment
  • Ajustes redimensionables en Android 3.1
  • Animación de la barra de herramientas Android AppCompat-v21
  • 3 Solutions collect form web for “Limpiar el lienzo con Canvas.drawColor ()”

    Al igual que usted, luché cómo borrar una capa superior / superficie en mi aplicación de capas múltiples / superficie. Después de 2 días de búsqueda y codificación, me enteré de mi propio camino y esto es cómo he aclarado un lienzo antes de dibujo, se puede utilizar al tener múltiples capas / superficiales. La capa de fondo no se cubrirá con negro, que es el truco.

     Paint paint = new Paint(); paint.setXfermode(new PorterDuffXfermode(Mode.CLEAR)); canvas.drawPaint(paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC)); // start your own drawing 

    ¿No necesita llamar también invalidate () desde dentro de su método onDraw, para que los cambios realizados en ese onDraw se actualicen en la pantalla?

    El invalidate () en su switch invocará su onDraw después de llamar a setBgnd, pero no hay nada que diga que se vuelva a dibujar después de haber realizado cambios en el Canvas.

    Puede utilizar el método drawRGB .

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.