Domanda

La documentazione della specifica delle risorse XML di LayerList e Levellist Drawasbles dice che l'elemento item Accetterà solo bitmap come elemento figlio. Su alcuni Risposte Per quanto riguarda gli elenchi di livello, vedo che le persone aggiungano shape Tag come bambini ai tag item. Ho provato quanto segue e sembra funzionare bene.

<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:maxLevel="0">
    <shape android:shape="rectangle">
      <solid android:color="#ff0000" />
    </shape>
  </item>
  <item android:maxLevel="1">
    <shape android:shape="oval">
      <solid android:color="#0000ff" />
    </shape>
  </item>
</level-list>
.

Ecco la mia domanda. è questo documentato ovunque, o dovrei evitare questo tipo di costrutto perché non è supportato in tutte le versioni API, o è la documentazione semplicemente incompleta e quanto sopra è perfettamente legale?

Per chiarire, so che posso specificare qualsiasi tipo di disegnabile utilizzando file di risorse separati e facendo riferimento a loro utilizzando l'attributo android:drawable. La domanda si riferisce alla specifica in linea di disegnabili arbitrari all'interno dell'XML dell'elenco di livello o dell'elenco di livello.

È stato utile?

Soluzione 2

La risposta è sì, è consentito e il comportamento supportato.

Mentre non è documentato, i tag non bitmap vengono utilizzati nelle risorse ufficiali Android XML.Ad esempio la fonte di progress_large_hollo.xml contiene quanto segue.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <rotate
             android:drawable="@drawable/spinner_76_outer_holo"
             android:pivotX="50%"
             android:pivotY="50%"
             android:fromDegrees="0"
             android:toDegrees="1080" />
    </item>
    <item>
        <rotate
             android:drawable="@drawable/spinner_76_inner_holo"
             android:pivotX="50%"
             android:pivotY="50%"
             android:fromDegrees="720"
             android:toDegrees="0" />
    </item>
</layer-list>
.

Altre fonti rivelano anche che qualsiasi XML accettato come risorsa disegnabile può essere posizionata all'interno dei tag item.

Altri suggerimenti

Non afferma che accetta solo oggetti Bitmap, ma che li accetta.È possibile utilizzare android:drawable per specificare un drammable.Tirare le tue forme nella loro definizione XML disegnabile e li refidisce nell'elenco di livello.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top