如何用Java(Android)在图像上写文本

我可以在iPhone上的Objective-C中做到这一点,但现在我正在寻找相应的Android Java代码。 我也可以用普通的Java做,但我不知道Android特定的类是什么。 我想在运行中生成一个PNG图像,该图像在图像中居中。

public void createImage(String word,String outputFilePath){/ *我该怎么办? * /}

相关主题:

如何在Objective-C(iOS)中的图像上写文字?

如何使用Java加载图像并将文本写入其中?

怎么样的:

Bitmap bitmap = ... // Load your bitmap here Canvas canvas = new Canvas(bitmap); Paint paint = new Paint(); paint.setColor(Color.BLACK); paint.setTextSize(10); canvas.drawText("Some Text here", x, y, paint); 

您不需要使用图形。

一种更简单的方法是创建一个FrameLayout其中包含两个元素 – 图像的ImageView ,以及另一个视图,用于绘制顶部的任何内容。

      

当然,图像顶部的东西不需要是简单的TextView ,它可以是另一个图像,或者包含您喜欢的任意元素的另一个布局。

我认为这也是一个很好的解决方案,可以解决您的问题。 或者下载源代码演示

 public Bitmap drawText(String text, int textWidth, int color) { // Get text dimensions TextPaint textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG | Paint.LINEAR_TEXT_FLAG); textPaint.setStyle(Paint.Style.FILL); textPaint.setColor(Color.parseColor("#ff00ff")); textPaint.setTextSize(30); StaticLayout mTextLayout = new StaticLayout(text, textPaint, textWidth, Layout.Alignment.ALIGN_CENTER, 1.0f, 0.0f, false); // Create bitmap and canvas to draw to Bitmap b = Bitmap.createBitmap(textWidth, mTextLayout.getHeight(), Bitmap.Config.ARGB_4444); Canvas c = new Canvas(b); // Draw background Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.LINEAR_TEXT_FLAG); paint.setStyle(Paint.Style.FILL); paint.setColor(color); c.drawPaint(paint); // Draw text c.save(); c.translate(0, 0); mTextLayout.draw(c); c.restore(); return b; } 

上面的函数从文本中绘制位图图像或下载源代码演示并查看它是如何工作的