Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用画布在图像上绘制文本_Android_Android Canvas_Textview - Fatal编程技术网

Android 使用画布在图像上绘制文本

Android 使用画布在图像上绘制文本,android,android-canvas,textview,Android,Android Canvas,Textview,我在Android上使用canvas组件时遇到了一个问题,我想在textview的同一位置的图像上绘制一个文本。 我使用一个可拖动的文本视图作为输入文本的演示,这样用户可以在生成图像之前看到它的外观 您可以在此处看到我的画布绘图的屏幕截图: 这里是用来生成新图像的代码 Canvas canvas = new Canvas(image); TextPaint tp = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); tp.setColor(Color.pars

我在Android上使用canvas组件时遇到了一个问题,我想在textview的同一位置的图像上绘制一个文本。 我使用一个可拖动的文本视图作为输入文本的演示,这样用户可以在生成图像之前看到它的外观

您可以在此处看到我的画布绘图的屏幕截图:

这里是用来生成新图像的代码

Canvas canvas = new Canvas(image);
TextPaint tp = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
tp.setColor(Color.parseColor("#00ff00"));
tp.setTextSize(mText.getTextSize());

String text = mTextView.getText().toString();
int textWidth = (int) tp.measureText(text, 0, text.length());

canvas.drawBitmap(image, 0,0, null);
canvas.drawText(text, mTextView.getX(), mTextView.getY(), tp);

如何解决此问题?

好的,getX和getY函数获取相对于父视图的X和Y,这可能不是正确的值。文本视图也可以有任何类型的内部填充。我并不是真的建议尝试像这样透支一个单独的视图,让它在所有操作系统版本上都能正常工作将是痛苦和不可能的。谢谢Gabe的回复,有没有更好的方法在图像上绘制文本而不依赖于这样的计算?