Существует очень простой ImageViewTouch, который Sephiroto сделал на основе кода приложения Gallery: http://blog.sephiroth.it/2011/04/04/imageview-zoom-and-scroll/
Я использую его в проекте, и он отлично работает, с пинч-масштабированием и всем, что вам нужно.По умолчанию, когда вы устанавливаете на него изображение, оно будет уменьшено до размера экрана.
edit: если вы хотите запретить автоматическое изменение размера изображения, вы можете изменить метод ImageViewTouchBase.getProperBaseMatrix на следующий:
protected void getProperBaseMatrix(RotateBitmap bitmap, Matrix matrix) {
float viewWidth = getWidth();
float viewHeight = getHeight();
float w = bitmap.getWidth();
float h = bitmap.getHeight();
matrix.reset();
matrix.postConcat(bitmap.getRotateMatrix());
matrix.postTranslate((viewWidth - w) / 2, (viewHeight - h) / 2);
}
Это должно центрировать изображение без изменения его размера.*