2011-09-12 21 views

risposta

70

creare gradient.xml in /res/drawable:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient 
     android:startColor="#FFFFFF" 
     android:endColor="#00000000" 
     android:angle="45"/>  
</shape> 

e nel tuo file di layout main.xml in /res/layout:

<?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/gradient" 
    > 
</LinearLayout> 

è possibile specificare l'angolo sostituendo il valore android:angle e avviare/colore finale sostituendo android:startColor e android:endColor

+0

possiamo cambiare il valore del gradiente xml in fase di esecuzione –

8

Si può usare qualcosa di simile:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
    <gradient android:startColor="#A1A1A1" 
       android:centerColor="#BDBDBD" 
       android:endColor="#A4A4A4" 
       android:angle="-90" /> 
</shape> 

per costruire un gradiente (Si sceglie i colori che gradite). Posiziona questo in drawable e voilà hai la tua forma da usare come sfondo: android:background="@drawable/the_name_of_your_xml"

4

Ecco come ho impostato lo stile del gradiente. Spero che questo ti aiuti. Ma l'ho usato per textview. È necessario apportare alcune modifiche per adattarsi allo sfondo del layout.

  Shader textShader = new LinearGradient(0, 0, 0, 20, new int[] { 
      Color.WHITE, getResources().getColor(//some color), 
      getResources().getColor(//some color), Color.WHITE }, 
      new float[] { 0.25f,0.50f,0.75f, 1 }, TileMode.CLAMP); 
      textview.getPaint().setShader(textShader); 
+2

anche se ha menzionato nella domanda che vorrebbe avere una soluzione xml, non una runtime – DonGru

+0

e cosa succede se voglio cambiare il valore del gradiente xml in fase di esecuzione –

Problemi correlati