如何将边框变成泡泡卡通

时间:2012-04-24 21:15:03

标签: java android graphics border drawable

所以我想把布局的边框改成某种类似于漫画/漫画中的泡泡。我知道我可以这样改变我的边界:

<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape     android:shape="rectangle" >
            <corners  android:radius="5dip" />
            <stroke  android:width="2dip" android:color="@color/white"/>
        </shape>
    </item>
</layer-list>

但我怎么能做尖尖的部分(看起来像三角形的部分)。我需要用它来指出我所点的内容。 我知道这听起来很奇怪或有趣,但我需要尝试。

3 个答案:

答案 0 :(得分:2)

不,你不能这样做。你可以提供 Stroke Corner 但没有复杂的曲线(三角形),对于自定义形状你可以使用视图和inDraw()

Path path = new Path();
path.moveTo(160.0f, 240.0f);
path.lineTo(140.0f, 200.0f);
path.addArc(new RectF(140, 180, 180, 220), -180, 180);
path.lineTo(160.0f, 240.0f);
path.close(); 

此路径将使用

在画布中绘制

canvas.drawPath(path,paint);

enter image description here

最好使用9Patch概念创建图像。 enter image description here

此工具有助于轻松构建9Patch图像http://android.elex.pe.kr/a-better-9-patch-tool

答案 1 :(得分:1)

最简单的选择可能是制作一个看起来像讲话泡泡的9补丁图像。这将允许气泡增长到其中的文本大小,而不会拉伸或看起来很有趣。

否则直接绘制它可能有点复杂 - 您需要在矩形的底部绘制一个类似三角形的对象,无论是用XML还是创建自定义组件并覆盖绘制方法 - 要复杂得多

9-patch图像用于许多Android GUI组件,如Buttons和TeXtFields - 基本上你只需要创建9-patch图像,然后将其设置为组件的背景。这可以在XML中完成。

有很多用于创建9补丁图像的示例,并且android SDK附带了9补丁工具,可以为您提供的任何图像创建9补丁。请参阅9-patch工具的此链接... http://developer.android.com/guide/developing/tools/draw9patch.html

答案 2 :(得分:0)

我制作了一个显示ListView的sample project,其中所有项目都显示在语音气球中。随意下载并使用它。顺便说一下,灰泥不是偶然的;它是原始OmniGraffle源艺术的投影。正如其他作家所建议的那样,它使用9-patch drawables。 Screen shot