我的问题的解决方案正是我的想法。我必须重写该onDraw
方法,并且在将 绘制Bitmap
成Canvas
一个圆圈之后(在我的问题之前已经完成),我只需要在实例上调用该drawText
方法,该Canvas
实例将绘制之前绘制的任何内容。
这是代码:
BitmapDrawable bitDraw = (BitmapDrawable) this.getDrawable();
Bitmap bitmap = bitDraw.getBitmap();
//paint for the text
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.WHITE);
paint.setTextSize((int) getTextSize() * scale);
paint.setShadowLayer(1f, 0f, 1f, Color.BLACK);
//draw the text to specific position
Rect bounds = new Rect();
paint.getTextBounds(String.valueOf(getNotificationAmount()), 0, String.valueOf(getNotificationAmount()).length(), bounds);
int x = bitmap.getWidth() - bounds.width();
int y = bitmap.getHeight() - bounds.height();
canvas.drawText(String.valueOf(getNotificationAmount()), x, y, paint);
请注意,位图对象已经作为一个圆圈绘制到画布上,不是这个问题的重点,因此我没有发布该代码。剩下的就是使用 x 和 y 值来获得适当的定位。哦,如果你想把红色矩形放在文本后面,我假设你必须用一个矩形做类似的事情。我希望这可以帮助任何遇到类似问题的人!