2012-03-07 38 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