2011-10-30 15 views
19

Come posso posizionare un gradiente radiale come sfondo in un LinearLayout? Ecco quello che ho attualmente ho:Come posizionare lo sfondo sfumato radiale

La forma:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <gradient 
     android:endColor="#e6e6e6" 
     android:gradientRadius="800" 
     android:startColor="#fafaf9" 
     android:type="radial"/> 
</shape> 

Il LinearLayout:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/accueil_bg_gradient"> 
</LinearLayout> 

voglio solo avere il mio gradiente a partire dall'angolo in alto a sinistra dello schermo, e la fine nell'angolo in basso a destra.

Grazie mille!

+0

Se si desidera cambiare l'angolo del gradiente cercare di utilizzare 'Android: angle' nel < [gradiente] (http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape)> elemento. – m039

+0

Grazie per la risposta ma è un gradiente radiale – alxscms

risposta

43

È possibile spostare il centro del gradiente radiale in una posizione diversa del drawable usando "centerX" e attributi "Centery" del gradiente. Sono valori a virgola mobile compresi tra 0 e 1.0 dove (i valori di centerX, centroY di conseguenza) 0,0 sono in alto a sinistra e 1,1 in basso a destra.

Il valore predefinito è 0,5,0.5 che è il centro dello spazio drawable/assegnato. Esempio per un lungo (raggio) 100px, gradiente bianco-nero il cui mezzo inizia nell'angolo superiore sinistro sarebbe:

<shape android:shape="rectangle"> 
     <gradient 
      android:type="radial" 
      android:startColor="#ffffff" 
      android:endColor="#000000" 
      android:gradientRadius="100" 
      android:angle="270" 
      android:centerX="0" 
      android:centerY="0"/> 

    </shape> 
-1

insieme questo come sfondo mybackground.xml:

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

    <item> 
     <shape android:shape="rectangle" android:layout_width="wrap_content"> 
      <stroke android:width="10dp" android:color="@color/darkBlue" /> 
      <solid android:color="#00000000" /> 
      <padding android:left="1dp" android:top="1dp" android:right="1dp" 
       android:bottom="1dp" /> 
     </shape> 
    </item> 

    <item> 
     <shape android:shape="rectangle"> 
      <gradient android:startColor="@color/grayBlue" 
       android:endColor="@color/lightBlue" android:angle="270" 
       android:centerColor="@color/lightBlue" /> 
      <!-- border width and color --> 
      <stroke android:width="1dp" android:color="#FFDDDDDD" /> 
      <padding android:left="10dp" android:top="8dp" android:right="10dp" 
       android:bottom="8dp" /> 
     </shape> 
    </item> 

</layer-list> 
+0

Ciao, grazie, ma il codice che mi hai dato è per un gradiente lineare, ma mi piacerebbe avere un gradiente radiale con il centro nell'angolo in alto a sinistra e la fine a destra in basso angolo – alxscms

Problemi correlati