2015-12-15 14 views
21

Android Studio 2.0 Preview 3bUtilizzando layer-list per visualizzare alcune immagini disegnabili

Ciao,

ho creato il seguente schema che voglio utilizzare per uno sfondo per la mia app. Sto usando il layer-list e voglio visualizzare una ciotola di piselli in 2 posizioni. Tutto sembra ok nell'anteprima, ma quando corro sulla genomotion o su alcuni dispositivi cinesi a basso costo, l'immagine si estende sullo schermo. Tuttavia, su Android AVD, tutto sembra a posto e sul mio Nexus 5 (dispositivo reale) tutto funziona correttamente.

Questo è ciò che desidero e questo è il modo in cui viene visualizzato nell'AVD e nel Nexus 5. Come potete vedere, non c'è alcun problema.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape> 
      <gradient 
       android:centerX="0.5" 
       android:centerY="0.3" 
       android:endColor="#08e25b" 
       android:gradientRadius="300dp" 
       android:startColor="#b7e9c9" 
       android:type="radial" /> 
     </shape> 
    </item> 

    <item 
     android:width="48dp" 
     android:height="48dp" 
     android:left="350dp" 
     android:top="400dp"> 
     <bitmap android:src="@drawable/peas" /> 
    </item> 

    <item 
     android:width="68dp" 
     android:height="68dp" 
     android:drawable="@drawable/peas" 
     android:left="-20dp" 
     android:top="480dp" /> 
</layer-list> 

ho messo peas.png file in drawable-nodpi e basta aggiungere la larghezza e l'altezza in layer-list

E quando corro sulla genymotion e alcuni dispositivi intelligenti a basso costo ottengo il seguente: enter image description here

Just quick summary. 

Nexus 5 real device and AVD devices works ok 
Genymotion and cheap smart devices doesn't display correctly 

Sono solo confuso in quello che dovrei credere. Ho provato a usare anche la bitmap per vedere se questo avrebbe fatto la differenza.

Molte grazie per qualsiasi suggerimento.

+0

Ciao, hai provato a usare "px" invece di "dp" (android: width = "68px")? –

risposta

17

Aggiornare il vostro livello di lista come segue

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

<item> 
    <shape> 
     <gradient 
      android:centerX="0.5" 
      android:centerY="0.1" 
      android:endColor="#08e25b" 
      android:gradientRadius="300dp" 
      android:startColor="#b7e9c9" 
      android:type="radial" /> 
    </shape> 
</item> 
<item 
    android:width="48dp" 
    android:height="48dp" 
    android:bottom="68dp" 
    android:right="-20dp"> 
    <bitmap 
     android:gravity="bottom|right" 
     android:src="@drawable/peas" /> 
</item> 
<item 
    android:height="68dp" 
    android:left="-20dp" 
    android:bottom="-20dp" 
    android:width="68dp"> 
    <bitmap 
     android:gravity="bottom|left" 
     android:src="@drawable/peas" /> 
</item> 

+0

Spero che risolva il tuo problema. – SachinS

+0

Grazie a quello che ora ha funzionato adesso, che mostra la genomotion e gli altri miei dispositivi economici. Tuttavia, ora che sto usando bitmap xml non posso cambiare la dimensione dell'immagine peas.png. Posso comunque cambiare la dimensione delle immagini? Grazie. – ant2009

+0

Hai provato il codice? – SachinS

8

Posizionare le immagini in tutte le cartelle densità (xxhdpi, xhdpi, hdpi).

Il sistema sceglie le risorse di immagine in base alla risoluzione dello schermo.

+1

Grazie, quella era la risposta corretta. – ant2009

+1

Quindi questo dovrebbe essere contrassegnato come risposta accettata. – AndroidMechanic

Problemi correlati