Java Android:通过扩展EditText允许在画布上输入文本

Java Android:通过扩展EditText允许在画布上输入文本,java,android,canvas,android-edittext,user-input,Java,Android,Canvas,Android Edittext,User Input,我正在创建一个自定义视图,可以使用典型的绘图工具(如绘制、放置形状或编写文本)进行注释,我一直在研究如何启用文本输入,而不用在触摸屏上创建新视图。我希望能够在这个自定义视图类中处理所有注释 我的想法是扩展EditText,因为它似乎具有在屏幕上创建可编辑文本所需的所有功能。目前,我重写了onTouchEvent(MotionEvent事件),以注释已加载到名为AnnotationView的自定义EditText中的任何可绘制内容。当选择文本工具并显示软键盘时,我可以调用super.onTouch

我正在创建一个自定义视图,可以使用典型的绘图工具(如绘制、放置形状或编写文本)进行注释,我一直在研究如何启用文本输入,而不用在触摸屏上创建新视图。我希望能够在这个自定义视图类中处理所有注释

我的想法是扩展EditText,因为它似乎具有在屏幕上创建可编辑文本所需的所有功能。目前,我重写了onTouchEvent(MotionEvent事件),以注释已加载到名为AnnotationView的自定义EditText中的任何可绘制内容。当选择文本工具并显示软键盘时,我可以调用super.onTouchEvent(event)。输入的文本显示在屏幕上,我可以编辑它。然而,目前我只能在一个地方输入文本,因为这只是一个添加了绘图功能的EditText。任何其他被重写的方法(onSizeChanged、onDraw、performClick)都从调用它们的
super
实现开始

这里有人尝试过类似的事情吗我需要允许用户在触摸坐标处开始编辑文本,但我不知道需要覆盖或创建哪些方法来完成编辑。这似乎是避免使用AnnotationView从活动中创建更多视图的一个好方法,但我不确定这种方法是否可行

问题可以在这里看到:



为了解释为什么我试图避免创建新的视图来写入文本,我想将其作为一个库发布,因此我试图为使用此视图的用户提供最少的麻烦。理想情况下,开发人员可以放置此视图,然后选择我通过他们自己的UI实现的任何工具。如果我需要在此基础上创建视图,我需要要求用户通过某种侦听器滚动他们自己的文本编辑实现。。。大概如果我错过了一个更简单的方法,请让我知道!我在这里看到过类似的问题,但这似乎是一个捕获用户输入并将其显示在画布上的明确的良好实践,对于像我这样的许多初学者来说是有用的

你们最好在画布上画画,你们将不得不看看如何聆听软键盘输入,这也将使你们很容易在屏幕上拖动文本和其他内容things@Marcos瓦斯科塞洛-是的,这一切都是在画布上绘制的。知道关于如何监听画布输入的好资源吗?我选择了AnnotationView扩展EditText,因为我希望拥有EditText的所有内置功能,而无需启动自己的文本输入系统。只需搜索“如何绑定SoftInputMethod android”,然后在上面绘制触摸坐标text@MarcosVasconcelos-也许我搜索得不对,但我很难找到任何直接的帮助来帮助我。你能不能更详细一点?