如何在android中绘制复杂的形状,包含三角形,矩形和笔划

时间:2016-03-16 05:59:36

标签: android android-layout

我有创建聊天的任务。这是UI:

enter image description here

我试图绘制矩形和三角形,并在图层列表中组合这2个drawable,但它看起来很糟糕......

Rectangle.xml

<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">

    <corners android:radius="50dp"/>
    <solid android:color="@color/message_cloud_client" />
    <stroke android:color="@color/message_cloud_client_stroke" android:width="1dp"/>

</shape>

Triangle.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item >
        <rotate
            android:fromDegrees="45"
            android:toDegrees="45"
            android:pivotX="-40%"
            android:pivotY="90%" >
            <shape
                android:shape="rectangle"  >
                <stroke android:color="@android:color/transparent" android:width="10dp"/>
                <solid
                    android:color="#dce7f7"  />
            </shape>
        </rotate>
    </item>
</layer-list>

1 个答案:

答案 0 :(得分:3)

您可以使用Nine-patch图片执行此操作,而不是创建图层列表。在“九贴片”图像中,您可以指示调整图像大小时生长或缩小的矩形。但整个图像不受影响。以下是该工具的地址:

sdk\tools\draw9patch

打开文件。导入原始图像并在调整图像大小时受影响的原始图像内设置矩形。 (不要包含图片的边缘)。

此外,您可以使用支持库中现有的Vector图像执行此操作。