所以我想把布局的边框改成某种类似于漫画/漫画中的泡泡。我知道我可以这样改变我的边界:
<?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>
但我怎么能做尖尖的部分(看起来像三角形的部分)。我需要用它来指出我所点的内容。 我知道这听起来很奇怪或有趣,但我需要尝试。
答案 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);
最好使用9Patch
概念创建图像。
此工具有助于轻松构建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。