Android 使用动态坐标绘制画布drawRect

Android 使用动态坐标绘制画布drawRect,android,canvas,android-imageview,Android,Canvas,Android Imageview,我有画布,它将生成图像中的矩形坐标 在此图像中,需要使用画布坐标在上面的图标上绘制矩形 我的示例代码 我得到了这样的输出 如果您正在将位图复制到内存中,并且从未在设置为ImageResource的位图上显示、绘制: setImageBitmap(bitmap); Canvas canvas = new Canvas(bitmap); 如果您需要以ARGB_8888格式复制,则 Bitmap drawableBitmap = bitmap.copy(Bitmap.Config.ARGB_8888

我有画布,它将生成图像中的矩形坐标

在此图像中,需要使用画布坐标在上面的图标上绘制矩形

我的示例代码

我得到了这样的输出

如果您正在将位图复制到内存中,并且从未在设置为ImageResource的位图上显示、绘制:

setImageBitmap(bitmap);
Canvas canvas = new Canvas(bitmap);
如果您需要以ARGB_8888格式复制,则

Bitmap drawableBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(drawableBitmap);
//Draw everything, then after (at end of method)
setImageBitmap(drawableBitmap);
至于你的座标:

X     Y  Width Height
600, 100, 50,   50
440, 125, 50,   50
685, 270, 50,   50
420, 350, 50,   50
...
它们是X、Y、W、H,而Android矩形是L、T、R、B

要转换坐标,请使用:

 Rectangle area = new Rectangle(x, y, x + w, y + h);

然后将该区域绘制到画布中。

你问的不清楚,但是,getImageint,int,int,int方法中有什么?我不需要我无意中提到的方法@MarcosVasconceloscheck回答,你现在的问题是坐标
X     Y  Width Height
600, 100, 50,   50
440, 125, 50,   50
685, 270, 50,   50
420, 350, 50,   50
...
 Rectangle area = new Rectangle(x, y, x + w, y + h);