调整可绘制图层列表中的位图大小

时间:2012-03-07 19:44:00

标签: android xml bitmap styles

目前我正在开发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>

所以我对图像进行了制作,所以在两端放置了一个透明的三角形。

这适用于只有一行的标题,但当标题占用两行时,它看起来像这样:

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

所以我的问题是:是否可以调整两个图像的大小以便正确显示? 谢谢!

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

不要使用包含渐变/边框描边和自定义图像的图层列表,而应考虑使用NinePatchDrawable

Android SDK附带了一个方便的9补丁creater