在圆形视图中绘制文本?

10
我想在类似下面图片的圆形视图中绘制字符串 "stackoverflow",有人能建议如何实现吗?同时我需要在每个字符上添加点击事件。

IMAGE


看一下这个,之前已经有人问过了:http://stackoverflow.com/a/8343851/420015 - adneal
它的目的是在文本周围画一个圆圈,而不是以圆形方式绘制文本。 - Shankar Agarwal
好的,但这个问题之前已经被问过了。这个链接是正确的:https://dev59.com/bWsy5IYBdhLWcg3wxAuO#8337972 - adneal
编辑了我的帖子。如何处理点击事件? - Shankar Agarwal
2个回答

11

您需要为此创建一个定制视图。在onDraw方法中,创建一个路径对象,向该对象添加圆形,然后使用Canvas对象在该路径上绘制文本。

Path path = new Path();
path.addCircle(x, y, radius, Path.Direction.CW);
myCanvas.drawTextOnPath(myText, path, offset, 0, myPaint);

编辑:

若使用os 4.0及以上版本,请使用此行代码:

setLayerType(View.LAYER_TYPE_SOFTWARE, null);

但是关于它的点击事件呢? - Shankar Agarwal
有关它的单击事件,有什么想法吗? - Shankar Agarwal
要实现点击事件,您必须在视图上实现触摸监听器,需要在视图上设置TouchListener,并将字符坐标与Touch事件坐标匹配,以触发Click事件。 - jeet
@AgarwalShankar,你是如何实现这个的?能否分享相关代码? - Anurag

0

请查看 Path.addCircleCanvas.drawTextOnPath API。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接