Android旋转图像

Android旋转图像,android,rotation,Android,Rotation,我想在方向上旋转图像和。但不需要重新启动活动。图像应该旋转,但视图不应该旋转。[示例:默认摄像头应用程序]有什么想法吗?我想我应该修正方向:屏幕方向=肖像 如果旋转手机,活动将无法恢复。但底部或侧面的图标会旋转。我该怎么做 示例:00:40-只有图标旋转,而不是孔视图旋转。您可以使用ExiFinInterface从文件中获取旋转信息 Matrix matrix = new Matrix(); Bitmap b; //... imageView.setImageBitmap(b); //... /

我想在方向上旋转图像和。但不需要重新启动活动。图像应该旋转,但视图不应该旋转。[示例:默认摄像头应用程序]有什么想法吗?我想我应该修正方向:屏幕方向=肖像

如果旋转手机,活动将无法恢复。但底部或侧面的图标会旋转。我该怎么做


示例:00:40-只有图标旋转,而不是孔视图旋转。您可以使用ExiFinInterface从文件中获取旋转信息

Matrix matrix = new Matrix();
Bitmap b;
//...
imageView.setImageBitmap(b);
//...
// screen rotation
matrix.postRotate(90);
b = Bitmap.createBitmap(b, 0, 0, b.getWidth(), b.getHeight(), matrix, true);
imageView.setImageBitmap(b);
Matrix matrix = new Matrix();
    int orientation = 1;
    try {
        ExifInterface exif = new ExifInterface(filePath);
        orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1);
    } catch (IOException e) {
        e.printStackTrace();
    }
    matrix.setRotate(0);
    switch (orientation) {
    case ExifInterface.ORIENTATION_ROTATE_90:
        matrix.setRotate(ROTATION_DEGREE);
        break;
    case ExifInterface.ORIENTATION_ROTATE_180:

        matrix.setRotate(ROTATION_DEGREE * 2);
        break;
    case ExifInterface.ORIENTATION_ROTATE_270:
        matrix.setRotate(-ROTATION_DEGREE);
        break;
    default:
        break;
    }

如果您想在单击按钮时动态旋转图像,请全局定义

     int angle; int valueangle = 0; 
以及点击按钮的使用 mrotate.setOnClickListener新建OnClickListener{

        @Override
        public void onClick(View v) {

            // TODO Auto-generated method stub
     ImageView mainimage22 = (ImageView) findViewById(R.id.mainimage22);
     Bitmap myImg = BitmapFactory.decodeResource(getResources(), R.drawable.image);

            angle = valueangle + 90;
            valueangle = angle;
            System.out.println("valueangle"+valueangle);
            if(valueangle == 360){
                valueangle=0;
                System.out.println("00"+valueangle);
            }
            System.out.println("angle"+angle);

            main_img.setVisibility(View.INVISIBLE);

            Matrix matrix = new Matrix();
            matrix.postRotate(angle);

            Bitmap rotated = Bitmap.createBitmap(myImg , 0, 0,
                    myImg .getWidth(), myImg .getHeight(), matrix, true);


            mainimage22.setImageBitmap(rotated);

        }
    });
我使用了OrientationEventListener并实现了OrientationChangedInt orientation方法。在我的主要活动中,我创建了一个调用实例并开始跟踪旋转:

公共类旋转检测器扩展了OrientationEventListener

在我的主要活动中:

MorentationListener=新的旋转检测到此; MorentationListener.enable


当你不再使用它时,别忘了禁用它。还要注意MaliEGL错误。

你的问题非常令人困惑。请提供一些额外的说明或包含一些你当前的代码。添加了一个视频,我希望你明白我的意思