绘制带有边框的工具提示

时间:2018-06-26 06:40:43

标签: android android-xml android-drawable

我正在尝试获得一个这样的带边框的工具提示(不完全是,我只是想要平滑边框的部分):

enter image description here

到目前为止,这是我尝试过的:

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

        <rotate android:fromDegrees="45" android:toDegrees="0"
            android:pivotX="50%" android:pivotY="0%" >
            <shape android:shape="rectangle">
                <size android:width="24dp" android:height="24dp" />
                <stroke android:color="@android:color/holo_blue_bright" android:width="1dp"/>
            </shape>
        </rotate>
    </item>
    <item>
        <shape android:shape="rectangle">
            <size android:width="206dp" android:height="76dp" />
            <solid android:color="@color/white"/>
            <stroke android:color="@android:color/holo_blue_bright"  android:width="1dp"/>
            <corners android:radius="2dp" />
        </shape>
    </item>

    <item android:gravity="top|right">
        <rotate android:fromDegrees="45" android:toDegrees="0"
            android:pivotX="50%" android:pivotY="0%" >
            <shape android:shape="rectangle">
                <size android:width="24dp" android:height="24dp" />
                <solid android:color="@color/white"/>
            </shape>

        </rotate>
    </item>

</layer-list>

这是我的输出:

enter image description here

2 个答案:

答案 0 :(得分:1)

我有一些工作要做,尽管它并不完美。输出如下:

enter image description here 注意边缘不是很光滑。这是修改后的代码:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:gravity="top|right" android:right="10dp">
        <rotate android:fromDegrees="45" android:toDegrees="0"
            android:pivotX="50%" android:pivotY="0%" >
            <shape android:shape="rectangle">
                <size android:width="24dp" android:height="24dp" />
                <stroke android:color="@android:color/holo_blue_bright" android:width="1dp"/>
            </shape>
        </rotate>
    </item>
    <item>
        <shape android:shape="rectangle">
            <size android:width="206dp" android:height="76dp" />
            <solid android:color="@color/white"/>
            <stroke android:color="@android:color/holo_blue_bright"  android:width="1dp"/>
            <corners android:radius="2dp" />
        </shape>
    </item>

    <item android:gravity="top|right" android:right="10dp" android:top="1dp">
        <rotate android:fromDegrees="45" android:toDegrees="0"
            android:pivotX="50%" android:pivotY="0%" >
            <shape android:shape="rectangle">
                <size android:width="24dp" android:height="24dp" />
                <solid android:color="@color/white"/>
            </shape>

        </rotate>
    </item>

</layer-list>

答案 1 :(得分:0)

您应该只使用9-patch。在Android Studio上,选择“创建9补丁文件”:

enter image description here

然后,在要复制图像的位置上,在要复制的部分的左侧和顶部标记。

并在要包含内容的部分上有正确的标记和底部的标记。

在许多情况下,这些区域是相同的。但就您的情况而言,我认为事实并非如此。

我还建议使图像尽可能小,以使其尺寸尽可能小。这样可以节省一些空间。

您可以在文档上阅读更多有关这些内容的信息: