0

我正在尝试在图像上绘制矩形,但无法将艺术品放置在图像上。只有部分矩形显示在屏幕底部的某处。这是我正在做的事情:

sinewave 是 res>drawable 文件夹中的图像

public void onDraw(Canvas canvas) 
{
     Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sinewave);
     canvas.drawBitmap(myBitmap, 0, 0, null);

     Paint myPaint = new Paint();
     myPaint.setColor(Color.GREEN);
     myPaint.setStyle(Paint.Style.STROKE);
     myPaint.setStrokeWidth(3);
     canvas.drawRect(0, 35 ,80 , 20, myPaint);
}

我无法超过 35,我想将矩形放在正弦波图像的中间。有人可以帮助我提出他们的想法。

4

1 回答 1

1

我不确定这是否可行,但您可以尝试在位图上使用 getScaledHeight 和 width 方法。如果这得到正确的边界,这将在外边界上绘制一个矩形,但您可以调整以将其放置在您需要的位置。

int height = bm.getScaledHeight(canvas);
int width = bm.getScaledWidth(canvas);
Rect r = new Rect(0, 0, width, height);
canvas.drawRect(r, paint);
于 2010-08-06T17:26:50.690 回答