image1.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
BitmapDrawable bd = (BitmapDrawable) image1.getDrawable();
Bitmap bitmap = bd.getBitmap();
int intrinsicHeight = bitmap.getHeight();
int intrinsicWidth = bitmap.getWidth();
Matrix matrix = image1.getImageMatrix();
float value[] = new float[10];
matrix.getValues(value);
float widthRatio = value[0];
float heightRatio = value[4];
int scaledImageOffsetX = (int) (event.getX() - (image1.getWidth() - intrinsicWidth*widthRatio)/2);
int scaledImageOffsetY = (int) (event.getY() - (image1.getHeight() - intrinsicHeight*heightRatio)/2);
int x = (int) (scaledImageOffsetX/widthRatio);
int y = (int) (scaledImageOffsetY/heightRatio);
if (x <0) {
x=0;
}
if (y< 0) {
y= 0;
}
if (x + 120 > bitmap.getWidth()) {
x = bitmap.getWidth() - 120;
}
if (y + 120 > bitmap.getHeight()) {
y = bitmap.getHeight() - 120;
}
image2.setImageBitmap(Bitmap.createBitmap(bitmap, x, y, 120, 120));
image2.setAlpha(alpha);
return false;
}
});
注意:1、x|y 轴的缩放系数 = x|y在屏幕中的像素大小/x|y的真实像素大小!
2、获取imageview局部图的位图的方法为:Bitmap.createBitmap(bitmap, x, y, 120, 120);本例为120*120像素大小的矩形图。