【发布时间】:2014-09-19 13:47:19
【问题描述】:
我正在尝试在 Android 的位图上写一些文本。我遵循了几个指南并尝试了几种不同的代码变体,但我要么得到一些模糊的东西,要么是空白屏幕,要么是未更改的位图。这是我一直在玩的基本想法。
public Bitmap writeOnDrawable(Context gContext, String path, String text) {
Bitmap bitmap = BitmapFactory.decodeFile(path);
Bitmap bmOverlay = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_4444);
Canvas canvas = new Canvas(bmOverlay);
Paint paint = new Paint();
paint.setColor(Color.CYAN);
paint.setTextSize(20);
paint.setFlags(Paint.ANTI_ALIAS_FLAG);
canvas.drawBitmap(bitmap, 0, 0, null);
canvas.drawPoint(30, 50, paint);
canvas.drawText("Text", 33, 53, paint);
return bmOverlay;
}
我将变量传递给这个函数,然后通过将返回的位图转换为 BitmapDrawable 并使其成为布局的背景来使用它。这个特定版本的函数只返回我最初的、未更改的位图,其中没有“文本”文本。
我尝试了一些变化,例如复制原始图像:
Bitmap drawableBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
将原始图像绘制到画布上:
canvas.drawBitmap(drawableBitmap, screenHeight, screenWidth, paint);
【问题讨论】:
-
我认为您应该在此处点击此链接。 stackoverflow.com/questions/7320392/how-to-draw-text-on-image
-
我已经尝试过实施类似的解决方案并最终得到相同的结果。使用该特定问题的一些答案,我最终得到了原始图像返回和空白图像。