【问题标题】:Distorted orientation after taking image from device camera (portrait locked app)从设备相机拍摄图像后方向扭曲(人像锁定应用程序)
【发布时间】:2016-01-13 21:00:53
【问题描述】:

我的应用程序是纵向锁定应用程序。应用程序结构基于一个活动和多个片段。我为此使用支持 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();
        }
    }

我在我的 Fragment 的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);

                }
            }
    }

【问题讨论】:

    标签: android


    【解决方案1】:

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

    【讨论】:

    • 谢谢。我找到了活动状态松散的解决方案。我在清单下的活动会话中添加了“android:configChanges="orientation"。现在它保持活动状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2011-07-15
    • 1970-01-01
    • 2010-12-28
    相关资源
    最近更新 更多