我注意到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文本呈现与最终编辑的位图完全一样 - 我可以采取什么样的方法?
我想想象一个meme生成器,它允许你直接在图像上输入影响字体,这就是我想要实现的那种ui。例如像这样的图像:http://i.imgur.com/JgGRj.jpg - 所以显示太阳图形,但顶部的文字可以通过点击进行编辑,新创建的文本将与图像完全一致地保存。
答案 0 :(得分:0)
这对于浏览器应用程序来说是一个好主意,用户可以使用鼠标和键盘进行交互。它感觉像是一个图像编辑器(像Photoshop这样的光栅或像Inkscape这样的矢量)。
Android设备的问题是用户可能只有触摸屏来输入字符,这意味着大部分屏幕空间都是由虚拟键盘占用的。即使对于更大的屏幕,例如平板电脑也是如此。
从技术上讲,你不需要继承View
:使用适当的背景和字体,你可以使用简单的EditText
。问题是这个实时预览功能在触摸屏设备上几乎没用,所以我的强烈建议就是做一个webapp并在后台生成图像。
答案 1 :(得分:0)
您可能考虑的另一种方法是使用位于图像右侧的EditText。使用透明背景可以让人觉得文字是图片的一部分。
当您想要保存图像时,可以使用drawText()来组成最终结果并保存。获取用于绘制文本的Paint需要一些工作,特别是确保您抖动并使用消除锯齿。或者你可以使用getDrawingCache()获取EditText的位图表示并在背景图像上绘制它。
祝你好运。