2011-10-30 17 views
19

Jak ustawić radialny gradient jako tło w LinearLayout? Oto co obecnie mają:Jak ustawić radialne tło gradientowe

Kształt:

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

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> 

po prostu chcą mieć mój gradientem zaczynając od lewego górnego rogu ekranu, a kończąc w prawym dolnym rogu.

Wielkie dzięki!

+0

Jeżeli chcesz zmienić kąt gradientu spróbować użyć 'android: angle' w < [gradient] (http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape)> element. – m039

+0

Dziękuję za odpowiedź, ale jest to gradient radialny – alxscms

Odpowiedz

43

można przesunąć środek gradientu radialnego w innym miejscu z pomocą „centerx odkształcalne” i „Centery” atrybuty gradientu. Są to wartości zmiennoprzecinkowe w zakresie od 0 do 1,0, gdzie (wartości centerX, centerY odpowiednio) 0,0 to lewy górny i 1,1 to dolny prawy róg.

Wartość domyślna to 0,5,0.5, która jest środkiem obszaru do losowania/przypisania. Przykład dla 100px długi (promień), czarno-biały gradientu, którego środkowa rozpoczyna się w lewym górnym rogu będzie:

<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

zestaw ten jako tło 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

Cześć, dziękuję, ale kod, który mi dałeś, dotyczy gradientu liniowego, ale chciałbym mieć gradient radialny ze środkiem w lewym górnym rogu i końcem po prawej dolnej kąt – alxscms