如何制作像这样的形状?

时间:2012-06-04 13:23:54

标签: android xml shape

我希望得到类似于下面所见的形状。我缺少的是标题颜色(匿名文本背后的颜色)。我通过简单地将鼠标移动到第二个textview上来重现我想要的东西,现在突出显示并产生这种效果:)

当前代码:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="rectangle">
 <stroke android:width="2dp" android:color="#000000" />
 <gradient android:startColor="#898989" android:endColor="#B5B5B5" android:angle="270"/> 

 <corners android:bottomRightRadius="7dp" android:bottomLeftRadius="7dp"
 android:topLeftRadius="7dp" android:topRightRadius="7dp"/>
</shape> 

enter image description here

3 个答案:

答案 0 :(得分:2)

您需要使用包含两个drawable的Layer List

例如,第一个将覆盖整个形状,第二个将覆盖它但设置为android:top="10dp",以创建显示基础第一个形状的偏移量

修改
像这样:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle" >
            <stroke
                android:width="2dp"
                android:color="#000000" />

            <solid android:color="#00ff00" />

            <corners
                android:bottomLeftRadius="7dp"
                android:bottomRightRadius="7dp" />
        </shape>
    </item>
    <item
        android:bottom="2dp"
        android:left="2dp"
        android:right="2dp"
        android:top="20dp">
        <shape android:shape="rectangle" >
            <gradient
                android:angle="270"
                android:endColor="#B5B5B5"
                android:startColor="#898989" />

            <corners
                android:bottomLeftRadius="7dp"
                android:bottomRightRadius="7dp" />
        </shape>
    </item>
</layer-list>

答案 1 :(得分:1)

使用LinearLayout并将两个不同形状的TextView作为背景。

第一个圆角为上角,第二个角为圆角。

答案 2 :(得分:0)

这些工具在开发中可能会有所帮助

  

http://angrytools.com/

     

http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html