0

因此,我想将布局的边框更改为漫画/卡通中的某种气泡。我知道我可以像这样改变我的边界:

<?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>

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

4

3 回答 3

2

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

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(路径,油漆);

在此处输入图像描述

9Patch更好地用概念来创造形象。在此处输入图像描述

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

于 2012-04-27T09:16:13.857 回答
1

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

否则直接绘制它可能会有点复杂——你需要在矩形底部绘制一个类似三角形的对象,或者用 XML 或者创建一个自定义组件并覆盖绘制方法——要复杂得多。

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

有很多创建 9-patch 图像的示例,android SDK 带有一个 9-patch 工具,可以为您提供的任何图像创建一个 9-patch。请参阅此链接以获取 9-patch 工具... http://developer.android.com/guide/developing/tools/draw9patch.html

于 2012-04-25T05:44:53.247 回答
0

我制作了一个示例项目,它显示了一个 ListView,其中所有项目都显示在语音气球中。随意下载和使用它。顺便说一句,那块灰泥不是偶然的。它是原始OmniGraffle源艺术的投影。正如其他作者所建议的那样,它使用 9-patch 可绘制对象。 截屏

于 2012-04-27T13:08:49.547 回答