图像在android中不旋转

图像在android中不旋转,android,image,rotation,Android,Image,Rotation,我在不同的框架布局中有两个图像两个图像都连接了触摸监听器。 两个都在一个屏幕上。第一个图像旋转成功,但第二个图像旋转不成功。 我正在尝试使用touchlistener旋转、缩放和移动图像 这是我的密码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_crop

我在不同的
框架布局中有两个图像
两个图像都连接了触摸监听器。 两个都在一个屏幕上。第一个图像旋转成功,但第二个图像旋转不成功。 我正在尝试使用touchlistener旋转、缩放和移动图像

这是我的密码:

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_crop);


    image1 = (ImageView) findViewById(R.id.image1);
    image1.setOnTouchListener(this);

    image2 = (ImageView) findViewById(R.id.image2);
    image2.setOnTouchListener(this);

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image1);
    image1.setImageBitmap(bitmap);
    mImageHeight = bitmap.getHeight();
    mImageWidth = bitmap.getWidth();

    mMatrix.postScale(mScaleFactor, mScaleFactor);
    image1.setImageMatrix(mMatrix);
    image2.setImageMatrix(mMatrix);

    mScaleDetector = new ScaleGestureDetector(getApplicationContext(), new ScaleListener());
    mRotateDetector = new RotateGestureDetector(getApplicationContext(), new RotateListener());
    mMoveDetector = new MoveGestureDetector(getApplicationContext(), new MoveListener());

}


public boolean onTouch(View v, MotionEvent event) {
     mScaleDetector.onTouchEvent(event); 
    mRotateDetector.onTouchEvent(event);
    mMoveDetector.onTouchEvent(event);

    float scaledImageCenterX = (mImageWidth * mScaleFactor) / 2;
    float scaledImageCenterY = (mImageHeight * mScaleFactor) / 2;

    mMatrix.reset();
    mMatrix.postScale(mScaleFactor, mScaleFactor); // 12-march
    mMatrix.postRotate(mRotationDegrees, scaledImageCenterX, scaledImageCenterY);
    mMatrix.postTranslate(mFocusX - scaledImageCenterX, mFocusY - scaledImageCenterY);// 12-march

    ImageView view = (ImageView) v;
    view.setImageMatrix(mMatrix);
    return true;
}

private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
    @Override
    public boolean onScale(ScaleGestureDetector detector) {
        mScaleFactor *= detector.getScaleFactor();
        mScaleFactor = Math.max(0.1f, Math.min(mScaleFactor, 10.0f));

        return true;
    }
}

private class RotateListener extends RotateGestureDetector.SimpleOnRotateGestureListener {
    @Override
    public boolean onRotate(RotateGestureDetector detector) {
        mRotationDegrees -= detector.getRotationDegreesDelta();
        return true;
    }
}

private class MoveListener extends MoveGestureDetector.SimpleOnMoveGestureListener {
    @Override
    public boolean onMove(MoveGestureDetector detector) {
        PointF d = detector.getFocusDelta();
        mFocusX += d.x;
        mFocusY += d.y;
        return true;
    }
}

请看@user3355820我查看了您提供的链接,然后第二张图片也不起作用