studio showasaction programacion para item edición desarrollo desarrollar aprende app aplicaciones android android-drawable xml-drawable shapedrawable

showasaction - menu android



cómo agregar efecto de sombra en drawable en Android (1)

Puede intentar implementando una lista de capas que actuará como fondo para LinearLayout y agregará su view dentro de este.

Cita de una respuesta a esta pregunta :

Agregue el archivo background_with_shadow.xml a res/drawable . Que contiene:

<?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="5dp"/> </shape> </item> <item android:right="1dp" android:left="1dp" android:bottom="2dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/white"/> <corners android:radius="5dp"/> </shape> </item> </layer-list>

Luego agregue la lista de capas como fondo en su LinearLayout.

<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/background_with_shadow"/>

EDITAR

Puedes crear un xml para crear una imagen gris como esta:

---- right_bubble_shdw_chat_drawable

<?xml version="1.0" encoding="utf-8"?> <shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="15dp" /> <solid android:color="@android:color/darker_gray" /> <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> <size android:height="@dimen/normal_button_height" android:width="@dimen/normal_button_width" />

--- para el puntero de la esquina ''chat_laftarraow_shdw''

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item > <rotate android:fromDegrees="90" android:toDegrees="-90" android:pivotX="50%" android:pivotY="50%" > <rotate android:fromDegrees="45" android:toDegrees="45" android:pivotX="-40%" android:pivotY="86%" > <shape android:shape="rectangle" > <stroke android:color="@android:color/darker_gray" android:width="1dp"/> <solid android:color="@android:color/darker_gray" /> </shape> </rotate> </rotate> </item> </layer-list>

------- Los estoy usando como

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <View android:id="@+id/left_chatArror" android:layout_width="20dp" android:layout_height="20dp" android:layout_alignParentRight="true" android:layout_marginTop="6dp" android:background="@drawable/chat_laftarraow"/> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxWidth="220dp" android:layout_marginRight="-3dp" android:orientation="horizontal" android:layout_toLeftOf="@+id/left_chatArror" android:paddingBottom="5dp" android:paddingTop="5dp" android:background="@drawable/right_bubble_chat_drawable"> </RelativeLayout> <View android:id="@+id/left_chatArrorShdw" android:layout_width="20dp" android:layout_height="20dp" android:layout_alignParentRight="true" android:layout_marginTop="15dp" android:background="@drawable/chat_laftarraow_shdw"/> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxWidth="220dp" android:layout_marginRight="-3dp" android:orientation="horizontal" android:layout_toLeftOf="@+id/left_chatArror" android:paddingBottom="5dp" android:paddingTop="5dp" android:background="@drawable/right_bubble_shdw_chat_drawable"> </RelativeLayout>

He creado una burbuja de chat con el dibujo que se ve bien, ahora quiero agregar un efecto de sombra debajo del dibujo para que haga el efecto 3D. No quiero usar una imagen de 9 tonos. Solo quiero saber cómo puedo agregar un efecto de sombra en este dibujo. mi código es

---- right_bubble_chat_drawable

<?xml version="1.0" encoding="utf-8"?> <shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="15dp" /> <solid android:color="@color/chatrightbubbleColor" /> <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> <size android:height="@dimen/normal_button_height" android:width="@dimen/normal_button_width" />

--- para el puntero de esquina ''chat_laftarraow''

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item > <rotate android:fromDegrees="90" android:toDegrees="-90" android:pivotX="50%" android:pivotY="50%" > <rotate android:fromDegrees="45" android:toDegrees="45" android:pivotX="-40%" android:pivotY="86%" > <shape android:shape="rectangle" > <stroke android:color="#00aaef" android:width="1dp"/> <solid android:color="#00aaef" /> </shape> </rotate> </rotate> </item> </layer-list>

------- Los estoy usando como

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <View android:id="@+id/left_chatArror" android:layout_width="20dp" android:layout_height="20dp" android:layout_alignParentRight="true" android:layout_marginTop="6dp" android:background="@drawable/chat_laftarraow"/> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxWidth="220dp" android:layout_marginRight="-3dp" android:orientation="horizontal" android:layout_toLeftOf="@+id/left_chatArror" android:paddingBottom="5dp" android:paddingTop="5dp" android:background="@drawable/right_bubble_chat_drawable"> </RelativeLayout> </RelativeLayout>

Por favor, sugiéreme cómo puedo agregar un efecto de sombra debajo de la burbuja como en la imagen de abajo