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?
- Agregar sombra al ShapeDrawable mediante programación
- Cómo configurar la sombra de una vista en Android?
- Androide diseño biblioteca barra de herramientas sombra
- La sombra CardView no se procesa cuando se convierte en mapa de bits
- Android: eliminar sombra entre la barra de herramientas y TabLayout
- La elevación no se muestra en la barra de herramientas de los dispositivos pre-pirulí
- FloatingActionButton sombra en pre-lollipop
- ¿Cómo puedo sombrear el PackageManager con Robolectric
- Cómo colocar el lienzo en View.DragShadowBuilder.onProvideShadowMetrics
- Cambiar automáticamente el fondo del botón y el aspecto del texto cuando se presiona (como iOS)?
- Cambiar la forma o la sombra del icono o eliminarlo por completo
- Cómo deshabilitar la sombra azul en el desplazamiento (aplicaciones de Android).
- Android Eliminar sombra en el cajón de navegación
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.