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

5

目前我正在开发一款Android应用。我想要制作一个带有背景的文本(标题),效果如下:

 _______
/______/

I have the following code:

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

因此,我的问题是:是否可能调整两个图像的大小,使其正确显示? 谢谢!


你有考虑使用9-patch吗? - dmon
是的,但我不想使用9-patch,我想保留“内部”颜色变量。 - user1255553
2个回答

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

1

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

还有一个方便的9-patch creater与Android SDK一起提供。


我想使用渐变颜色的原因是变量"jaarkleur"可能会改变。仅修改这个变量比制作一个全新的背景图片更容易。 - user1255553

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接