自定义可绘制气泡

时间:2018-07-18 10:24:53

标签: android android-drawable

我需要为图标容器(如此图中的白色容器)创建气泡背景:

所需外观

Required Appearance

我决定使用可绘制的xml而不是9补丁图像,因此我可以在代码中控制圆角半径。因此,借助this answerrelated question,我创建了以下xml:

bg_icons_container.xml

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

    <item
        android:left="0dp"
        android:top="27dp"> <!-- How to make this 50% of height? -->

        <rotate
            android:fromDegrees="-45"
            android:toDegrees="0"
            android:pivotX="0%"
            android:pivotY="0%"> <!-- How to make the triangle more acute? -->

            <shape
                android:shape="rectangle" >

                <solid
                    android:color="@color/white"/>

            </shape>

        </rotate>

    </item>

    <item
        android:left="10dp">

        <shape
            android:shape="rectangle">

            <solid
                android:color="@color/white"/>

            <corners
                android:radius="@dimen/border_radius_small"/>

        </shape>

    </item>

</layer-list>

结果是:

实际外观(放大)

Actual Appearance

我的问题是可绘制对象的三角形部分太宽。我该如何使其变得更加尖锐? (我的minSdkVersion是16,所以我不能在第一个项目上使用android_width来尝试拉伸它。)

此外,我必须将第一项的android:top硬编码为27dp。是否可以将其设置为50%,以便在可绘制高度更改时可以正确调整?

0 个答案:

没有答案