【问题标题】:Edit text on top of an image and save in android?在图像顶部编辑文本并保存在android中?
【发布时间】:2012-11-17 18:18:05
【问题描述】:

我注意到 Canvas 和 Paint 是向图像添加文本的标准方法,例如:

Paint myPaint = new Paint();
myPaint.setColor(Color.Black);
myPaint.setTextSize(25);
myCanvas.drawText("Test test test", 0, 0, myPaint); //Set the position

,但不是在图像上方有一个单独的文本视图,当更新时会用更新后的文本重绘画布 - 如果我想在图像顶部编辑文本 怎么办 以便在我输入时通过android keyb,文本在最终编辑的位图上呈现完全一样 - 我可以采取什么样的方法?

我想想象一个模因生成器,它可以让你直接在图像上输入影响字体,这就是我想要实现的那种 ui。例如喜欢这张图片:http://i.imgur.com/JgGRj.jpg - 所以显示太阳图形,但顶部的文本可通过单击进行编辑,新创建的文本将与图像完全一样保存。

【问题讨论】:

    标签: android image textview android-canvas


    【解决方案1】:

    您可能会考虑的另一种方法是使用位于图像上方正确位置的 EditText。使用透明背景给人以文字是图像一部分的印象。

    当你想保存图像时,你可以使用 drawText() 来组合最终结果并保存它。要让用于正确绘制文本的 Paint 需要做一些工作,特别是要确保抖动和使用抗锯齿。或者您可以通过 getDrawingCache() 获取 EditText 的位图表示并将其绘制在背景图像之上。

    祝你好运。

    【讨论】:

      【解决方案2】:

      这对于用户通过鼠标和键盘进行交互的浏览器应用程序来说是个好主意。感觉就像一个图像编辑器(像 Photoshop 这样的光栅或像 Inkscape 这样的矢量)。

      Android 设备的问题在于,用户可能只有触摸屏来输入字符,这意味着大部分屏幕空间都由虚拟键盘占用。即使对于更大的屏幕(如平板电脑)也是如此。

      从技术上讲,您不需要继承View:使用适当的背景和字体,您应该可以使用简单的EditText。问题是这个实时预览功能在触摸屏设备上几乎没有用处,所以我强烈建议你像 webapp 一样在后台生成图像。

      【讨论】:

        猜你喜欢
        • 2013-01-08
        • 1970-01-01
        • 2021-11-06
        • 1970-01-01
        • 1970-01-01
        • 2018-01-18
        • 1970-01-01
        • 2011-02-24
        • 1970-01-01
        相关资源
        最近更新 更多