我的应用程序是一个纵向锁定的应用程序。应用程序结构基于一个活动和多个片段。我正在使用支持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);
}
}
}
答案 0 :(得分:1)
简单的解决方案是在 onSaveInstanceState 方法中处理它。你无法控制相机意图旋转。将旋转设置为纵向并以横向模式拍照它会强制旋转你的活动,它会失去状态。