2015-04-19 15 views
7

Sto cercando di ottenerlo in modo che le mie voci di lista siano elevate e mostrino un'ombra esterna.Come si ottiene un oggetto ListView da elevare?

Ecco la mia lista layout di visualizzazione voce

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" android:layout_height="match_parent" 
android:translationZ="5dp" 
android:cropToPadding="false"> 

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageView4" 
    android:background="@color/background_white" 
    android:layout_alignBottom="@+id/PostUpvote" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:translationZ="2dp" 

    /> 

e qui è il mio layout ListView

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<ListView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/listView" 
    android:layout_gravity="center_horizontal" 
    android:background="@color/background_white" 
    android:dividerHeight="10sp" 
    android:translationZ="2dp"/> 

Qualsiasi aiuto sarebbe apprecia ted.

risposta

11

Se si prendono di mira la versione 21 è possibile utilizzare

android:elevation="10dp" 

Se poi non si potrebbe essere necessario creare l'ombra effetto se stessi in un disegnabile. Ad esempio questo crea un'ombra esterna sui lati destro e inferiore.

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

<!-- Adding border layers simulating drop shadow --> 
<item> 
    <shape> 

     <padding android:top="0dp" android:right="1dp" android:bottom="1dp" android:left="0dp" /> 
     <solid android:color="#00494949" /> 
    </shape> 
</item> 

<item> 
    <shape> 
     <padding android:top="0dp" android:right="1dp" android:bottom="1dp" android:left="0dp" /> 
     <solid android:color="#10494949" /> 
    </shape> 
</item> 

<item> 
    <shape> 
     <padding android:top="0dp" android:right="1dp" android:bottom="1dp" android:left="0dp" /> 
     <solid android:color="#20494949" /> 
    </shape> 
</item> 

<item> 
    <shape> 
     <padding android:top="0dp" android:right="1dp" android:bottom="1dp" android:left="0dp" /> 
     <solid android:color="#30494949" /> 
    </shape> 
</item> 

<item> 
    <shape> 
     <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" /> 
     <solid android:color="#70494949" /> 
    </shape> 
</item> 

<item> 
<shape> 
     <solid android:color="@android:color/white" /> 
</shape> 
</item> 

È possibile regolare la direzione dell'ombra modificando i valori di riempimento e aggiungere effetti elevazione controllando la trasparenza.

+0

Come applicherò quelle forme alle mie immagini? –

+0

salvalo in drawable come my_drop_shadow.xml e usalo in qualsiasi View con Android: background = "@ drawable/my_drop_shadow" – inmyth

+1

Grazie della tua risposta! –