Java 如何将边框变成泡泡动画
所以我想把我的版式的边框改成某种像漫画/卡通片中那样的泡泡。我知道我可以像这样改变我的边界:Java 如何将边框变成泡泡动画,java,android,graphics,border,drawable,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" >
<?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>
但是我怎么做尖头部分(看起来像三角形的部分)。我需要用它来指出我点击的内容。
我知道这听起来很奇怪或有趣,但我需要尝试一下。最简单的选择可能是制作一个看起来像语音泡泡的9块图像。这将允许气泡增长到其内部文本的大小,而不会拉伸或看起来很滑稽 否则,直接绘制它可能会有点复杂-您需要在矩形底部绘制一个类似三角形的对象,可以是XML,也可以创建自定义组件并覆盖绘制方法-复杂得多 9-patch图像用于许多Android GUI组件,如按钮和文本字段-基本上,您只需创建9-patch图像,然后将其设置为组件的背景。这可以在XML中完成
有很多创建9-patch映像的示例,android SDK附带了一个9-patch工具,可以为您提供的任何映像创建9-patch。有关9-patch工具,请参见此链接 最简单的选择可能是制作一个9块的图像,看起来像一个语音泡泡。这将允许气泡增长到其内部文本的大小,而不会拉伸或看起来很滑稽 否则,直接绘制它可能会有点复杂-您需要在矩形底部绘制一个类似三角形的对象,可以是XML,也可以创建自定义组件并覆盖绘制方法-复杂得多 9-patch图像用于许多Android GUI组件,如按钮和文本字段-基本上,您只需创建9-patch图像,然后将其设置为组件的背景。这可以在XML中完成
有很多创建9-patch映像的示例,android SDK附带了一个9-patch工具,可以为您提供的任何映像创建9-patch。有关9-patch工具,请参见此链接 不,你不能那样做。您可以提供笔划角点,但不提供复杂曲线(三角形),对于自定义形状,您可以在onDraw()中使用view和 此路径将使用 canvas.drawPath(路径,绘制)强> 最好使用
9Patch
概念创建图像
此工具将有助于轻松构建9Patch映像不,您不能这样做。您可以提供笔划角点,但不提供复杂曲线(三角形),对于自定义形状,您可以在onDraw()中使用view和 此路径将使用 canvas.drawPath(路径,绘制)强> 最好使用
9Patch
概念创建图像
此工具将帮助轻松构建9Patch图像我制作了一个列表视图,其中所有项目都显示在语音气球中。请随意下载并使用它。顺便说一句,那灰色的泥浆不是意外;这是源于原始艺术的阴影。正如其他作者所建议的,它使用了9-patch drawable。
我制作了一个列表视图,其中所有项目都显示在语音气球中。请随意下载并使用它。顺便说一句,那灰色的泥浆不是意外;这是源于原始艺术的阴影。正如其他作者所建议的,它使用了9-patch drawable。
看起来不错,但是没有下载链接,所以我可以测试它。你可以在这里同步整个源代码树:或者你可以从这里开始保存单个文件:看起来不错,但是没有下载链接,所以我可以测试它。你可以在这里同步整个源代码树:或者你可以从这里开始保存单个文件:这意味着顶部和左侧的一个始终可以拉伸,底部和右侧的一个始终用于填充?这意味着顶部和左侧的一个始终可以拉伸,而左侧的一个始终可以拉伸底部和右侧总是用于填充?
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();