È possibile utilizzare una combinazione di Bitmap.extractAlpha e un BlurMaskFilter per creare manualmente un'ombra esterna per qualsiasi immagine che è necessario visualizzare, ma ciò funzionerebbe solo se l'immagine viene caricata/visualizzata solo una volta ogni tanto, poiché la il processo è costoso.
pseudo-codice (potrebbe anche compilare!):
BlurMaskFilter blurFilter = new BlurMaskFilter(5, BlurMaskFilter.Blur.OUTER);
Paint shadowPaint = new Paint();
shadowPaint.setMaskFilter(blurFilter);
int[] offsetXY = new int[2];
Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);
/* Might need to convert shadowImage from 8-bit to ARGB here, can't remember. */
Canvas c = new Canvas(shadowImage);
c.drawBitmap(originalBitmap, offsetXY[0], offsetXY[1], null);
Poi mettere ShadowImage nella vostra ImageView. Se questa immagine non cambia mai ma viene visualizzata molto, è possibile crearla e memorizzarla nella cache su onCreate per bypassare la costosa elaborazione delle immagini.
Anche se non funziona così, dovrebbe essere sufficiente per farti andare nella giusta direzione.
si può facilmente generare un'ombra ninepatch utilizzando questo strumento http://inloop.github.io/shadow4android/ – Yuraj