2014-10-14 8 views
13

enter image description here Stworzyłem bańkę czatową z możliwością rysowania, która wygląda dobrze, teraz chcę dodać efekt cienia pod szufladą, aby uzyskać efekt 3D. Nie chcę używać 9-okienka obraz. Chcę tylko wiedzieć, w jaki sposób mogę dodać efekt cienia do tego wyciągnięcia. mój kod jestjak dodać efekt cienia do rysowania w Androidzie

---- 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" /> 

--- dla wskaźnika narożnego '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> 

------- Mam je przy użyciu jak

<?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> 

Proszę zasugerować mi jak mogę dodać efekt cienia poniżej bańki jak na obrazku poniżej

enter image description here

Odpowiedz

20

Można spróbować poprzez wdrożenie Layer-listę, która będzie działać jako tło dla LinearLayoout i dodaj swoje view wewnątrz to.

cytat z odpowiedzi na this question:

Dodaj plik background_with_shadow.xml do res/drawable. Zawiera:

<?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> 

Następnie dodaj listę warstw jako tło w swoim LinearLayout.

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

EDIT

Można tworzyć seprate XML do tworzenia szary obraz jak thsis:

---- 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" /> 

--- dla wskaźnika rogu '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> 

------- Używam ich jak

<?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> 
+0

cień pokazuje tylko w rogach. –

+0

utworzyć inny kod 'list-list' i po prostu dodać' 'wewnątrz twojego kodu koloru –

+0

Nie dostałem tego, możesz podać przykład lub kod . –

Powiązane problemy