2011-10-30 95 views
19

如何在LinearLayout中將放射狀漸變形狀定位爲背景?以下是我目前有:如何放置徑向漸變背景

形狀:

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

我只是希望能有我的梯度從該屏幕的左上角開始和結束在右下角。

非常感謝!

+0

如果要更改漸變的角度嘗試使用'安卓:angle'在< [gradient](http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape)>元素。 – m039

+0

感謝您的回答,但它是一個徑向漸變 – alxscms

回答

43

可以在使用「的centerX」和梯度的「centerY」屬性可繪製的不同位置移動的徑向梯度的中間。它們是一個浮點值,範圍從0到1.0,其中(centerX,centerY的值相應地)0,0是左上角,1,1是右下角。

默認值是0.5,0.5,這是可繪製/分配空間的中間。爲100px的長(半徑) 例,黑白漸變,其在中間的左上角開始將是:

<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

集此作爲背景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

嗨,謝謝,但你給我的代碼是爲線性漸變,但我想有一個徑向漸變,中心位於左上角,末尾位於右下角角 – alxscms