Android开发:位图和矩形?

时间:2011-09-01 16:40:04

标签: android canvas bitmap 2d

有人可以解释一下rect的作用:canvas.drawBitmap(bmp,scr ,dst ,null); 因为我已经尝试过并试图对此有任何意义,但我根本不明白这两个矩形的作用。

我的目标是显示位图的一部分而不是整个图像。

//西蒙

2 个答案:

答案 0 :(得分:3)

Rect src = new Rect(0, 0, 50, 50); 
Rect dst = new Rect(50, 50, 200, 200);  
canvas.drawBitmap(originalBitmap, src, dst, null);

此代码指定您要复制从位置0x 0y开始的源宽度为50宽度/ 50高度的矩形,并从位置50x / 50y开始绘制到目标位图并占用它直到200x 200y - 因此拉伸一点 - 因为源只有50像素长,要拉伸到200x和200y,副本最终将达到150宽度/ 150高度。

答案 1 :(得分:2)

Android文档似乎很好地解释了这种方法。

drawBitmap Documenation

通过阅读文档,你可以通过指定一个源Rect来做你想要的,它将是原始位图的矩形(子集),然后它将被转换为dest Rectangle。

Bitmap picture; //Assume this is a 1024x768 image and has been initialized.

@Override
public void onDraw(Canvas canvas){
    //To Draw only the top left corner of the image
    Rect src = new Rect(0,0,512,368);

    Rect dest = new Rect(0,0,512,368);

    canvas.drawBitmap(picture, src, dest, null);
}