Исходная карта источника должна быть должным образом подготовлена, то есть отфильтрована и масштабирована, например, с соответствующей плотностью и так далее.Затем вы должны определить прямоугольник, который захватывает свою часть.Скажем:
int desiredX0Lcl=50,
desiredY0Lcl=70,
desiredX1Lcl=400,
desiredY1Lcl=500;
Rect sourceRectLcl= new Rect();
sourceRectLcl.set(desiredX0Lcl,desiredY0Lcl,desiredX1Lcl,desiredY1Lcl);
Теперь создайте целевой прямоугольник с границами, совпадающими с требуемой частью исходного sourceBitmap:
Rect destinationRectLcl=new Rect();
int widthLcl=desiredX1Lcl-desiredX0Lcl;
int heightLcl=desiredY1Lcl-desiredY0Lcl;
destinationRectLcl.set(0,0,widthLcl,heightLcl);
create destinationCanvas:
Bitmap baseCanvasBitmapLcl = Bitmap.createBitmap(widthLcl,heightLcl ,Bitmap.Config.ARGB_8888);
Canvas destCanvasLcl = new Canvas(baseCanvasBitmapLcl);
И нарисуйте нужную часть sourceBitmap:
destCanvasLcl.drawBitmap(sourceBitmap,sourceRectLcl,destinationRectLcl,null);
//sourceBitmap.recycle;