2011-09-12 19 views

Odpowiedz

70

tworzyć gradient.xml w /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> 

i w pliku layoutu main.xml w /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> 

można określić kąt zastępując wartość android:angle i start/end kolor zastępując android:startColor i android:endColor

+0

możemy zmienić wartość gradientu xml w czasie wykonywania –

8

Można użyć czegoś takiego:

<?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> 

zbudować gradient (wybrać kolory chcesz). Umieść to w odkształcalne i voila masz swój własny kształt do wykorzystania jako tło: android:background="@drawable/the_name_of_your_xml"

4

to jak mam ustawić styl gradientu. Mam nadzieję że to pomoże. Ale użyłem go do przeglądania tekstu. MAbyś musiał wprowadzić pewne zmiany, aby pasowały do ​​twojego tła układu.

  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

chociaż wspomniał on w pytaniu, że chciałby mieć rozwiązanie xml, a nie runtime – DonGru

+0

i co jeśli chcę zmienić wartość gradientu xml w czasie wykonywania –