2011-08-10 53 views
10

對於linearLayout,我希望在背景中有一個漸變(平鋪)(重複)圖像。我已經有一個形狀xml設置爲背景使用梯度和平鋪圖像的Android背景

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient android:angle="90" 
     android:endColor="@color/color1" 
     android:startColor="@:color/color2"> 
    </gradient> 
</shape> 

如何添加平鋪的bg圖像?

+0

有一個很好的解釋,請看這個[link](http://androidblogger.blogspot.com/2009/01/how-to-have-tiled-background-cont.html)。 –

+0

我知道如何做到這一點,我不知道的是如何把他們兩個都做到一起。 – Taranfx

+1

好的,對不起。那麼也許這個[問題](http://stackoverflow.com/questions/4159959/android-circular-gradient-alpha-mask)可能會幫助你。我將在位圖xml中使用平鋪圖像,如我發佈的第一個鏈接中所解釋的,然後嘗試在其上添加漸變,然後在畫布上繪製像這樣的其他SO問題。希望能幫助到你。 –

回答

23

結賬LayerLists

以下是放置在res/drawable中的XML可繪製的,名爲myBackground.xml。 將其設置爲您想爲其設置漸變和平鋪背景的View的背景。

在下面的示例中,平鋪圖像將位於漸變的頂部,因爲它稍後在LayerList中指定 - 顯然,如果它位於頂部,則需要png圖像拼貼塊上的一些透明度(可以設置這在一個圖像編輯應用程序,如GIMP或Photoshop)。

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <gradient 
       android:type="radial" android:gradientRadius="500" 
       android:startColor="#17568A" 
       android:endColor="#494C4F" /> 

     </shape> 
    </item> 
    <item> 
     <bitmap 
      android:src="@drawable/tile_classy_fabric" 
      android:tileMode="repeat" /> 
    </item> 
</layer-list> 

「tile_classy_fabric」指的是一個名爲「tile_classy_fabric.png」的文件在我res/drawable文件夾中(250像素正方形,因爲它是平鋪 - 我們不需要它的超級大)。