0

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

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 - 所以显示太阳图形,但顶部的文本可以通过单击进行编辑,并且新创建的文本将与图像完全一样保存。

4

2 回答 2

0

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

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

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

于 2012-11-17T18:37:21.003 回答
0

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

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

祝你好运。

于 2012-11-17T18:56:56.377 回答