Cómo aplicar sombra a ImageView?

Quiero aplicar sombra al ImageView . Cuando estoy aplicando la sombra a un TextView lo estoy consiguiendo pero igual que no está consiguiendo a ImageView . ¿Como puedó resolver esté problema?

También podemos usar CardView que proporciona un fondo de esquina redondeado y sombra. Para usarlo debes agregar la biblioteca v7 CardView como una dependencia al proyecto en build.gradle como a continuación.

 dependencies { compile 'com.android.support:cardview-v7:23.0.1' ------- } 

Nota: Cambie 23.0.1 en la línea anterior con la versión respetada.

Así que CardView el ImageView con CardView para hacer sombra como abajo.

 <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" card_view:cardBackgroundColor="@android:color/white"> <ImageView android:id="@+id/dish_image" android:layout_width="match_parent" android:layout_height="120dp" android:adjustViewBounds="true" /> </android.support.v7.widget.CardView> 

Va a añadir una sombra alrededor de la imagen.

Nota: No sé si es una buena solución. Soy un principiante. He intentado implementar el CardView que da una idea para implementar el mismo para esto. Si no es bueno por favor me actualice con la razón.

Esto se toma de la presentación de Romain Guy en Devoxx, pdf que se encuentra aquí .

 Paint mShadow = new Paint(); // radius=10, y-offset=2, color=black mShadow.setShadowLayer(10.0f, 0.0f, 2.0f, 0xFF000000); // in onDraw(Canvas) canvas.drawBitmap(bitmap, 0.0f, 0.0f, mShadow); 

Espero que esto ayude.

NOTAS

No te olvides de Honeycomb y por encima de lo que necesita para invocar setLayerType(LAYER_TYPE_SOFTWARE, mShadow) , de lo contrario no verá su sombra! (@Dmitriy_Boichenko)

SetShadowLayer no funciona con aceleración de hardware por desgracia por lo que reduce en gran medida las prestaciones (desgaste @Matt)

Respuesta Taken from Here

Para Api mayor de 21. Puede probar en xml en vista de imagen o Botón: Lea aquí en el sitio de desarrollador

 android:elevation="5dp" 

Usted puede crear una lista de capas de dibujar y poner sus dos elementos (dibujables) en ella para una imagen y su sombra.

La posición y el contenido de su elemento sombra pueden cambiar de acuerdo con el lugar en el que desee aplicar la sombra (arriba, izquierda, derecha, derecha e izquierda, etc.) y el estilo de su sombra.

Crear un archivo shadow_rect.xml

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item > <shape android:shape="rectangle"> <solid android:color="@android:color/darker_gray" /> <corners android:radius="0dp"/> </shape> </item> <item android:right="1dp" android:bottom="2dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/white"/> <corners android:radius="1dp"/> </shape> </item> </layer-list> 

Y el uso de esto como android: background = "@ drawable / shadow_rect dentro de su Imageview.

  • Android Paint setShadowLayer () ignora el color de su Paint
  • ListView Sombra de artículo + selector personalizado
  • Android cómo dibujar un rect rectangular y sombra Layout
  • ¿Tiene el sistema operativo Android archivos como / etc / passwd, / etc / shadow y / etc / group?
  • Cambio de Android Color de sombra de elevación de material
  • Cómo eliminar la sombra circundante FloatingActionButton?
  • Robolectric sombra no funciona
  • Android "elevación" que no muestra una sombra
  • ¿Cómo evitar que drawBitmap de Android sólo dibuje imágenes en negro?
  • Android No se puede eliminar el color en la parte superior e inferior
  • Cambiar dragshadow en android, mientras arrastra sucede
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.