Sombra de diseño simple en Android

Así que he estado buscando en la web una forma de mostrar una simple sombra para un diseño, pero no hay forma adecuada de hacerlo.
Todo lo que encontré fue una solución alternativa en la que crear un diseño detrás de la que desea una sombra para aplicar, y luego ajustarlo para que sea transparente y otras cosas.

¿Hay alguna otra forma de tener una sombra de diseño simple sin agregar un diseño completamente nuevo?

He sido capaz de encontrar una solución a este problema, y ​​que mediante la adición de una View debajo de nuestro famoso diseño, mostrando un degradado de un color a otro.
Por lo general, el primer color sería una especie de gris oscuro, y el segundo sería el color del fondo (en mi caso, voy a tener un fondo gris claro por lo que no es completamente blanco).

Diseño + Ver

El xml iría así:

 ... <LinearLayout android:id="@+id/headerLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/headerImage" android:orientation="vertical" /> <View android:layout_width="fill_parent" android:layout_height="5dip" android:background="@drawable/drop_shadow" > </View> </LinearLayout> ... 

Drop_shadow.xml:

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:startColor="#404040" android:endColor="#F1F1F1" android:angle="270" > </gradient> </shape> 

Espero que ayude;)

Puede utilizar la clase android.support.v4.view.ViewCompat que establece la elevación de una vista utilizando el método estático setElevation . La clase es un ayudante para acceder a las funciones en vista introducidas después del Nivel 4 de la API de una manera compatible con versiones anteriores.

La elevación de la base está en píxeles, por ejemplo

 View mFab = (View) findViewById(R.id.floating_button); ViewCompat.setElevation(mFab, 12); 

Para lollipop y encima se puede utilizar la elevación .

Para versiones anteriores:

Aquí está un hack perezoso de: http://odedhb.blogspot.com/2013/05/android-layout-shadow-without-9-patch.html

(Toast_frame no funciona en KitKat, la sombra se eliminó de las tostadas)

Solo usa:

 android:background="@android:drawable/toast_frame" 

o:

 android:background="@android:drawable/dialog_frame" 

Como fondo

Ejemplos:

 <TextView android:layout_width="fill_parent" android:text="I am a simple textview with a shadow" android:layout_height="wrap_content" android:textSize="18sp" android:padding="16dp" android:textColor="#fff" android:background="@android:drawable/toast_frame" /> 

Y con diverso bg color:

 <LinearLayout android:layout_height="64dp" android:layout_width="fill_parent" android:gravity="center" android:background="@android:drawable/toast_frame" android:padding="4dp" > <Button android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="Button shadow" android:background="#33b5e5" android:textSize="24sp" android:textStyle="bold" android:textColor="#fff" android:layout_gravity="center|bottom" /> </LinearLayout> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.