像Snapchat那样向图片添加灰色背景的文本?Android/Java

像Snapchat那样向图片添加灰色背景的文本?Android/Java,java,android,bitmap,android-canvas,paint,Java,Android,Bitmap,Android Canvas,Paint,我像这样在位图上绘制了文本。如何获得与文本高度相同但覆盖整个屏幕的灰色背景???查看和了解如何使用编写良好的代码完成这些事情的最佳方法是查看android源代码本身。例如,这里有一个例子,它包含了你可能不需要的其他东西,比如复合填充,但你可以按照它来完成,并获得如何完成的基本概念。你可以使用Rect。在绘制文本之前,将Rect绘制到屏幕: int screenWidth=getApplicationContext().getResources().getDisplayMetrics().widt

我像这样在位图上绘制了文本。如何获得与文本高度相同但覆盖整个屏幕的灰色背景???

查看和了解如何使用编写良好的代码完成这些事情的最佳方法是查看android源代码本身。例如,这里有一个例子,它包含了你可能不需要的其他东西,比如复合填充,但你可以按照它来完成,并获得如何完成的基本概念。

你可以使用
Rect
。在绘制文本之前,将
Rect
绘制到屏幕:

int screenWidth=getApplicationContext().getResources().getDisplayMetrics().widthPixels;
Rect greyBack=新的Rect(0,顶部,屏幕宽度,底部);
油漆=新油漆();
油漆.setARGB(128100100100)//添加alpha,因为Snapchat具有半透明//灰色背景
画布。drawRect(灰背、油漆)


top
bottom
需要是文本上方和下方的坐标。您可以使用
y
的值,为
top
去掉一点,为
bottom
添加一点。加/减多少取决于您,并更改背景灰背的高度。

谢谢!这是我最后使用的答案。请接受它,因为它的答案通过单击“完成”箭头下的勾号解决了您的问题。对不起,我是个笨蛋。谢谢你的帮助。哈哈,别担心,每个人都会从这里开始,谢谢你的帮助!我用了另一个答案,但我也在阅读onDraw方法,所以我很感激
          Bitmap newBm = ...
          Canvas canvas = new Canvas(newBm);
          Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
          paint.setColor(Color.WHITE);
          paint.setTextSize((int) (44 * scale));
          Rect bounds = new Rect();
          paint.getTextBounds(gText, 0, gText.length(), bounds);
          canvas.drawText(gText, x, y, paint);