Разработка Android: растровые изображения и прямоугольники? - PullRequest
1 голос
/ 01 сентября 2011

Может кто-нибудь объяснить, что делает прямоугольник: canvas.drawBitmap(bmp,scr ,dst ,null); Потому что я пытался понять это, но я просто не понимаю, что делают два прямоугольника.

Моя цель - отобразить часть растрового изображения вместо всего изображения.

// Simon

Ответы [ 2 ]

3 голосов
/ 09 сентября 2012
Rect src = new Rect(0, 0, 50, 50); 
Rect dst = new Rect(50, 50, 200, 200);  
canvas.drawBitmap(originalBitmap, src, dst, null);

Этот код указывает, что вы хотите скопировать прямоугольник с размерами 50 ширина / 50 высота источника, начиная с позиции 0x 0y, и нарисовать в целевом растровом изображении, начиная с позиции 50x / 50y, и занимать его до 200x 200y - поэтому немного растянуть - поскольку длина источника составляет всего 50 пикселей, для увеличения до 200x и 200y копия будет иметь размер 150width / 150 height.

2 голосов
/ 01 сентября 2011

Документация Android, кажется, объясняет этот метод довольно хорошо.

Документация по drawBitmap

Читая документацию, вы можете сделать то, что вы хотите, указав источник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);
}
...