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


¿Cómo evitar que drawBitmap de Android sólo dibuje imágenes en negro?

Según la pregunta original , el resultado final es un png redondeado-rect en un ImageView con una sombra de mirada natural de la gota.

Tengo la sombra trabajando, pero cuando dibuja, hace que toda la imagen sea negra.

texto alternativo

¿Cómo puedo evitar que la imagen original (definitivamente no negra) sea negra al agregar la sombra?

  BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER); Paint shadowPaint = new Paint(); shadowPaint.setMaskFilter(blurFilter); int[] offsetXY = new int[2]; Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t); Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY); Canvas c = new Canvas(shadowImage); c.drawBitmap(originalBitmap, -offsetXY[0], -offsetXY[1], null); imageView.setImageBitmap(shadowImage); 

ACTUALIZAR:

He implementado la sugerencia de Josh sobre la copia en el espacio de color correcto y ahora funciona muy bien! Para futuros buscadores, este código produce una sombra en una vista de imagen . Puede jugar con las xey, así como la constante EXTERIOR para obtener el efecto deseado.

 BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER); Paint shadowPaint = new Paint(); shadowPaint.setMaskFilter(blurFilter); int[] offsetXY = new int[2]; Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t); Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY); Bitmap shadowImage32 = shadowImage.copy(Bitmap.Config.ARGB_8888, true); Canvas c = new Canvas(shadowImage32); c.drawBitmap(originalBitmap, -offsetXY[0], -offsetXY[1], null); imageView.setImageBitmap(shadowImage32); 

texto alternativo

  • Cómo proporcionar la sombra al botón
  • Cambio de Android Color de sombra de elevación de material
  • Cómo eliminar la sombra circundante FloatingActionButton?
  • Google map android api v2 marcador sombras
  • Robolectric sombra no funciona
  • Cómo crear sombra de botón en el estilo de diseño de material android
  • ¿Cómo puedo sombrear el PackageManager con Robolectric
  • Android Drop Shadow en la vista
  • 2 Solutions collect form web for “¿Cómo evitar que drawBitmap de Android sólo dibuje imágenes en negro?”

    He comentado en su última pregunta, pero aquí está de nuevo.

    El problema puede ser que está dibujando una imagen de 32 bits (el original) en una imagen de 8 bits (la shadowImage extraída). Si ese es el caso, haga algo como

     Bitmap shadowImage32 = shadowImage.copy(ARGB_8888, true); 

    Después de la llamada extractAlpha, y dibujar en ese tipo en lugar de la shadowImage de 8 bits.

    Tienes que dibujar tanto la imagen de sombra como la imagen original. La imagen de sombra sólo contiene los valores alfa de la imagen original, no los píxeles de color real.

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