Según el original question, El resultado final es un rectificado png
en un ImageView
con una sombra natural.¿Cómo evitar que drawBitmap de Android solo dibuje imágenes en negro?
Tengo la sombra funcionando, pero cuando dibuja, hace que toda la imagen sea negra.
¿Cómo se puede evitar que la imagen original (definitivamente no negro) de ser negro cuando se añade a 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);
ACTUALIZACIÓN:
implementé la sugerencia de Josh sobre la copia hacia el espacio de color correcto y ahora funciona muy bien! Para buscadores futuros, este código produce una sombra paralela en una vista de imagen. Puede jugar con la 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);
¡Impresionante! Me alegro de que todo ese esfuerzo valga la pena. – Josh
¿Qué debo hacer para cambiar el color de la sombra? – Frame91