2012-03-07 39 views
5

目前我正在開發一個Android應用程序。我想和背景,看起來像這樣的文本(頭):調整可繪製層列表中的位圖大小

_______ 
/______/ 

我有以下代碼:

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape>  
      <gradient 
       android:startColor="@color/jaarkleur" 
       android:centerColor="@color/jaarkleur" 
       android:endColor="#E66C2C00" 
       android:angle="0" /> 
      <stroke android:width="1dp" 
      android:color="#ff000000" 
      />  
     </shape> 
    </item> 
    <item> 
     <bitmap android:src="@drawable/overlay_left" android:gravity="left" /> 
    </item> 
    <item> 
     <bitmap android:src="@drawable/overlay_right" android:gravity="right" /> 
    </item> 

</layer-list> 

所以我對圖像進行這樣一個TRANSPARANT三角這是放在兩端。

這工作正常頭只有一行,但是當一個頭佔據了兩行,它看起來是這樣的:

http://i.imgur.com/lDQGo.png

所以我的問題是:是否有可能同時調整圖像,因此長相是否正確? 謝謝!

+0

你看着使用9補丁? – dmon 2012-03-07 19:46:25

+0

是的,但我不想使用9貼片,我想保持'內部'顏色可變。 – user1255553 2012-03-07 20:26:23

回答

10

我解決了它使用兩個(半透明)圖像代表角落。

的XML看起來是這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item> 
       <shape>  
        <gradient 
         android:startColor="@color/jaarkleur" 
         android:centerColor="@color/jaarkleur" 
         android:endColor="#E66C2C00" 
         android:angle="0" /> 
        <stroke android:width="1dp" 
      android:color="#ff000000" 
      />  
       </shape> 
     </item> 
     <item> 
      <bitmap android:src="@drawable/overlay_left" android:gravity="left|top" /> 
     </item> 
     <item> 
      <bitmap android:src="@drawable/overlay_right" android:gravity="right|bottom" /> 
     </item>   
</layer-list> 
+2

你也可以使用'android:gravity =「right | fill_vertical」'和'android:gravity =「left | fill_vertical」'來垂直縮放左右位圖 – grine4ka 2012-10-30 08:13:26

1

而不是使用梯度/邊框筆劃和自定義圖像的層列表,請考慮使用NinePatchDrawable

還有一個方便的9-patch creater隨android SDK一起提供。

+0

我想使用漸變色的原因是因爲變量「jaarkleur」可以改變。只是修改這個變量,然後創建一個全新的背景圖像更容易。 – user1255553 2012-03-07 20:15:15