如何在 android 中的 Canvas 文本上添加透明背景?

How to add transparent background on Canvas text in android?

我想在报价中添加透明 canvas。确切地说,我们可以在下图中看到($74)。我试图关注 SO 问题,但对我没有任何帮助。这是我的 code:

@Override
public Bitmap transform(Bitmap bitmap) {
    // TODO Auto-generated method stub
    synchronized (ImageTransform.class) {
        if (bitmap == null) {
            return null;
        }
        Bitmap resultBitmap = bitmap.copy(bitmap.getConfig(), true);
        Bitmap bitmapImage = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_heart);
        bitmapImage = Bitmap.createScaledBitmap(bitmapImage, 50, 50, true);

        Canvas canvas = new Canvas(resultBitmap);
        Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setColor(Color.WHITE);
        paint.setStyle(Paint.Style.FILL);
        paint.setTextSize(40);
        paint.setShadowLayer(2.0f, 1.0f, 1.0f, Color.BLACK);
            canvas.drawText("0", 20, 400, paint);
            canvas.drawBitmap(bitmapImage, 510, 55, null);
        bitmap.recycle();
        return resultBitmap;
    }

如何在价格部分添加透明颜色或图像?

编辑-1

不过我可以添加 canvas 矩形,但位置不正确

 Paint paintrect = new Paint();
        paintrect.setColor(Color.BLACK);
        paintrect.setStyle(Paint.Style.FILL_AND_STROKE);
        paintrect.setStrokeWidth(10);

        float left = 20;
        float top = 80;
        float right = 50;
        float bottom = 0;

        canvas.drawRect(left, top, right, bottom, paintrect);

我明白了: 您可以在图像的左上角看到黑色矩形。

你快到了!

Paint paintrect = new Paint();
    paintrect.setColor(Color.BLACK);
    paintrect.setStyle(Paint.Style.FILL_AND_STROKE);
    paintrect.setStrokeWidth(10);
    paintrect.setAlpha(127);

    float left = 18;
    float top = 360;
    float right = 128;
    float bottom = 416;

    canvas.drawRect(left, top, right, bottom, paintrect);

您将不得不调整矩形坐标以使其位于您想要的位置;我尽量估计了。