【问题标题】:How to add dynamic text entered by user to canvas in android?如何将用户输入的动态文本添加到android中的画布?
【发布时间】:2012-08-16 18:54:00
【问题描述】:

我正在制作一个应用程序,用户在其中输入一些文本并且该文本必须显示在图像上的矩形上(就像图像上的便签,它可以在图像上拖动并调整大小)。我对android很陌生,我真的找不到通过书籍和谷歌在android中这样做的方法。 我一直在使用 html 设计应用程序,在 html 中,我们可以根据需要设置文本框的样式并将其添加到页面的任何位置。但在这里我无法配置编辑文本来做同样的事情。但我无法使编辑文本像笔记棒一样,并使其可动态拖动和重新调整大小。 我还尝试使用 canvas.drawrect() 仅绘制一个矩形......但是如何动态地向其中添加文本是我无法弄清楚的事情。 我不是要完整的代码..但是请大家给我一个正确的方向的开始,这样我就可以尝试并尝试找出方法..现在我被严重卡住了。 下图显示了笔记棒的外观......

【问题讨论】:

    标签: android android-layout android-canvas android-edittext android-styles


    【解决方案1】:

    如果您不需要将其实际绘制在画布上,则可以使用 EditText 小部件并将它和您的图像都放在 RelativeLayout 中。您可以设置 EditText 的最大高度和宽度,或者让它包裹高度以便它随文本扩展等。只需确保 EditText 小部件在图像之后添加到 RelativeLayout,因此它位于顶部。

    【讨论】:

    • 感谢您的回答...我尝试使用编辑文本...但它可以动态拖动和重新调整大小...
    • 据我所知,与单击相比,任何拖动实现都将是相当低级的东西。最简单的方法(如果使用 API 级别 11 或更高级别)是为图像或 EditText 设置 OnDragListener 以及拉入 DragEvents 并将 X 和 Y 信息反馈回 EditText 小部件的位置和大小的东西。也许使用图像中的 OnDraw 方法在 EditText 外的角上绘制一个手柄,然后拖动需要在该区域开始?不管怎样,我很确定它很快就会变得一团糟。
    • 我想将文本注释拖到图像上而不是图像上。它可以像上图那样设置样式吗..
    • 可以,但需要大量摆弄自定义样式、字体和可绘制对象。只是一个想法-可以实现的另一种方法是在 OnDraw() 方法期间手动绘制文本,但在位于图像下方的单独 EditText 中对其进行编辑。不过,用于点击和拖动图像以及获取坐标的代码很快就会变得复杂(这里可能太复杂了,无法简短回答)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    相关资源
    最近更新 更多