从设备相机拍摄图像后扭曲的方向(纵向锁定的应用程序)

时间:2016-01-13 12:50:02

标签: android

我的应用程序是一个纵向锁定的应用程序。应用程序结构基于一个活动和多个片段。我正在使用支持v4片段,片段也有嵌套。当我试图从相机拍照时,我的个人资料更新片段。相机应用程序已打开,我可以捕获并保存图像。图片成功进入onActivityResult()

但随机应用程序方向变得扭曲,并自动更改为横向。因此,当前的片段状态丢失。我将Manifest文件的方向锁定为android: screenOrientation="portrait,用于我的活动。这个问题主要是定制Android手机(三星,HTC等)。我需要一个方向指南,无论我是否需要为此问题创建自定义相机或任何其他修复程序。

我的片段中的我的相机调用方法如下:

 private void callCamera() {
        try {
            Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            cameraIntent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            startActivityForResult(cameraIntent, CAMERA_REQUEST);
        }catch (Exception e){
            e.printStackTrace();
        }
    }

我在片段的onActivityResult()得到的结果就像这样

 public void onActivityResult(int requestCode, int resultCode, Intent data) {

    if( requestCode == CAMERA_REQUEST && resultCode == mActivity.RESULT_OK){
                /**
                 * For Default Camera callback
                 *
                 */
                Bitmap image = (Bitmap) data.getExtras().get("data");
                if(image != null){
                    AppUtility.mCapturedImage = image;
                    mIvProfileImg.setImageBitmap(image);

                }
            }
    }

1 个答案:

答案 0 :(得分:1)

简单的解决方案是在 onSaveInstanceState 方法中处理它。你无法控制相机意图旋转。将旋转设置为纵向并以横向模式拍照它会强制旋转你的活动,它会失去状态。