2015-11-06 13 views
10

La mia domanda è correlata a questa: link. Di recente ho cambiato la maggior parte delle mie risorse per Android da diversi file PNG per diverse risoluzioni ai vettoriali drawable. Sto utilizzando uno "swipe-to-delete" library che può cambiare lo sfondo delle sue viste durante lo scorrimento per mostrare uno sfondo rosso in stile Gmail con un'icona di cestino, qualcosa di simile a questo (che ha uno sfondo verde con un'icona di controllo):Android Layer-List VectorDrawable size

enter image description here

ho usato per farlo utilizzando il seguente codice, e ancora fare per < API 21

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <color android:color="@color/accent"/> 
    </item> 
    <item android:right="@dimen/activity_horizontal_margin"> 
     <bitmap 
      android:gravity="right|center_vertical" 
      android:src="@drawable/ic_delete_24dp"/> 
    </item> 
</layer-list> 

Tuttavia, sintassi diversa è necessario per API 21+

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <color android:color="@color/accent" /> 
    </item> 
    <item android:right="@dimen/activity_horizontal_margin" 
      android:drawable="@drawable/ic_delete_24dp" 
      android:gravity="right|center_vertical"/> 
</layer-list> 

Ora, anziché un'icona a sinistra/a destra, l'icona su API 21 & API 22 (Lollipop) viene allungata per riempire lo schermo. C'è un modo per specificare la larghezza dell'icona?

+0

Proprio come un aggiornamento, questo bug è stato risolto API passato 23 (Marshmallow), ed esiste solo su Lollipop –

+1

qualsiasi soluzione? –

+3

La proprietà 'android: drawable' dà crash in API 19 e' app: srcCompat' non sembra funzionare in 'layer-list'. Come lo gestisci? –

risposta

0

Aggiungi questo al vostro file di applicazione livello build.gradle

defaultConfig { 
    vectorDrawables.useSupportLibrary = true 
}