Android动态文本绘制/触摸检测
我想显示文本(相对较大)并确定用户触摸哪个字符。我还想通过在某些字符上画一个圆圈(例如)来美化文本。我如何知道哪些字符在什么位置?如果在编程方面有所帮助,强制使用单间距字体就可以了Android动态文本绘制/触摸检测,android,text,canvas,drawing,Android,Text,Canvas,Drawing,我想显示文本(相对较大)并确定用户触摸哪个字符。我还想通过在某些字符上画一个圆圈(例如)来美化文本。我如何知道哪些字符在什么位置?如果在编程方面有所帮助,强制使用单间距字体就可以了 它是否也能使这一行文本向左/向右滚动(使用触摸->滑动),并且仍然有触摸功能来确定正确的字符 这是一个非常宽泛的问题,您还有很多工作要做,但下面是一个可能解决方案的概要: 创建自定义视图。ImageView通常是一个很好的基类 继承 重写视图的onDraw()方法 使用canvas.drawText()将文本放置在
它是否也能使这一行文本向左/向右滚动(使用触摸->滑动),并且仍然有触摸功能来确定正确的字符 这是一个非常宽泛的问题,您还有很多工作要做,但下面是一个可能解决方案的概要:
- 创建自定义视图。ImageView通常是一个很好的基类 继承 重写视图的onDraw()方法 使用canvas.drawText()将文本放置在屏幕上 使用paint.getTextBounds测量文本。见讨论 链接到下面,以便全面了解。因为你画的是文字 在屏幕上,你们测量它,你们确切地知道每个 性格是 在自定义视图中重写onTouch()方法并跟踪 你需要的活动。这里有很多QA,关于如何做到这一点 要滚动文本,请使用canvas.translate() 您可以在onTouch()中进行计算。既然你知道你 滚动(翻译),你知道你的角色移动了多远 并且可以偏移触摸检测以检测角色触摸 最后,由于您现在可以控制所有图形和 字符位置是抽象的,只有在比较时才有意义 对于触摸式位置,您可以选择任何方式对其进行修饰
祝你好运。这是一个非常宽泛的问题,你还有很多工作要做,但下面是一个可能解决方案的概要:
- 创建自定义视图。ImageView通常是一个很好的基类 继承 重写视图的onDraw()方法 使用canvas.drawText()将文本放置在屏幕上 使用paint.getTextBounds测量文本。见讨论 链接到下面,以便全面了解。因为你画的是文字 在屏幕上,你们测量它,你们确切地知道每个 性格是 在自定义视图中重写onTouch()方法并跟踪 你需要的活动。这里有很多QA,关于如何做到这一点 要滚动文本,请使用canvas.translate() 您可以在onTouch()中进行计算。既然你知道你 滚动(翻译),你知道你的角色移动了多远 并且可以偏移触摸检测以检测角色触摸 最后,由于您现在可以控制所有图形和 字符位置是抽象的,只有在比较时才有意义 对于触摸式位置,您可以选择任何方式对其进行修饰
祝你好运。我还没有开始做这件事,但我确实尝试过“调查”可能的选择。您的答案似乎与相应的解决方案一致,因此请将其标记为答案。我认为我唯一的分歧是使用ScrollView而不是自己实现翻译。我希望Touch仍能在滚动视图中提供适当的自定义视图/画布坐标。我计划在这里报告对我有效的方法。我还没有开始,但我尝试过“调查”可能的选择。您的答案似乎与相应的解决方案一致,因此请将其标记为答案。我认为我唯一的分歧是使用ScrollView而不是自己实现翻译。我希望Touch仍能在滚动视图中提供适当的自定义视图/画布坐标。我计划在这里汇报对我有用的东西。