首页 > 解决方案 > 我需要 scaleType="matrix" 以便在 ImageView 中拖动对象。我希望使用默认的 fit_center 使图像更小

问题描述

我需要在 XML 中进行 scaleType="matrix" 以便在 ImageView 中移动图像,但是图像太大,scaleType="fit_center" 使图像大小合适。我如何拥有 scaleType="fit_center" 或类似效果的东西,并且仍然可以拖动图像。

这是java代码:

private ImageView imageView;
private Matrix matrix=new Matrix();
private Matrix savedMatrix=new Matrix();
private PointF start=new PointF();//PointF holds 2 coordinates
private Bitmap bmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    imageView=(ImageView)findViewById(R.id.photo);
    imageView.setOnTouchListener(this);

}
public boolean onTouch(View v, MotionEvent event){
    imageView=(ImageView)v;
    switch(event.getAction() & MotionEvent.ACTION_MASK){
        case MotionEvent.ACTION_DOWN://first pointer 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;
    }//switch
    imageView.setImageMatrix(matrix);
    bmap = Bitmap.createBitmap(imageView.getWidth(), imageView.getHeight(), Bitmap.Config.RGB_565);
    Canvas canvas = new Canvas(bmap);
    imageView.draw(canvas);
    return true;
}
}

标签: androidimageview

解决方案


推荐阅读