Android:通过扩展EditText

时间:2018-08-15 20:07:20

标签: java android canvas android-edittext user-input

我正在制作一个自定义视图,该视图可以使用典型的绘画工具(例如绘图,掉落形状或书写文本)进行注释,并且我一直在坚持如何启用文本输入而无需诉诸于在触摸时创建新视图的问题。 。我希望能够处理这个自定义视图类中的所有注释。

我的想法是扩展EditText,因为它似乎具有在屏幕上创建可编辑文本所需的所有功能。目前,我重写onTouchEvent(MotionEvent event)来注释已被加载到名为AnnotationView的自定义EditText中的所有可绘制对象。选择文本工具并显示软键盘时,我可以呼叫super.onTouchEvent(event)。输入的文本显示在屏幕上,我可以对其进行编辑。但是,目前,我只能在一个地方输入文本,因为目前这只是一个具有附加绘图功能的EditText。任何其他覆盖的方法(onSizeChanged,onDraw,performClick)均以对其super实现的调用开头。

这里有没有人尝试过类似的东西? 我需要允许用户开始在其触摸坐标处编辑文本,但是我不知道需要重写或创建哪种方法。似乎这是一个好方法为了避免需要使用AnnotationView从Activity中创建更多视图,但是我不确定这种方法的实际可行性。

问题可以在这里看到: Image of AnnotationView being used in a sample app


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

0 个答案:

没有答案