首先,在 xml 布局中更改 ImageView 的 scaletype:
android:scaleType="matrix"
接下来,在 Fragment 或 Activity 中添加一个 OnTouchListener:
imageView.setOnTouchListener(this);
让你的 Fragment 或 Activity 实现 View.OnTouchListener 并实现这个方法:
public boolean onTouch(View v, MotionEvent event)
{
switch (event.getAction() & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_DOWN:
savedMatrix.set(matrix);
start.set(event.getX(), event.getY());
break;
case MotionEvent.ACTION_MOVE:
matrix.set(savedMatrix);
float dx = event.getX() - start.x;
float dy = event.getY() - start.y;
matrix.postTranslate(dx, dy);
break;
}
imageView.setImageMatrix(matrix);
return true;
}
savedMatrix、matrix 和 start 应该在您的 Fragment 或 Activity 中定义:
private Matrix matrix = new Matrix();
private Matrix savedMatrix = new Matrix();
private PointF start = new PointF();
现在您可以在 ImageView 中移动图像了。