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);