我正在开发一个应用程序,使用相机意图拍摄照片和图像视图来显示它。我有两个问题,首先是相机。
我的活动仅用于管理相机行为,此管理器的代码基于developer.google.com的示例。 问题出在相机界面上。 当我在垂直位置打开相机时,拍摄照片并接受预览,所有过程在垂直位置,一切正常。水平位置的行为相同。
但如果在不同的位置接受照片预览如何启动相机界面,请不要结束。好像相机重新启动,我可以拍另一张照片。 此外,当发生这种情况时,照片未正确保存,在图库上我看不到图片,有一条消息“无法加载照片”。
我的另一个问题是类似的,但这次发生在ImageView上。当我使用图像设置ImageView时,旋转设备后图像消失。 这个问题只发生在我拍摄新照片时,如果图像已在系统中,则一切正常。
编辑:
static final int REQUEST_IMAGE_CAPTURE = 1;
OnClick {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File f = null;
try {
f = createImageFile();
mCurrentPhotoPath = f.getAbsolutePath();
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
} catch (IOException ex) {
ex.printStackTrace();
mCurrentPhotoPath = null;
}
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
OnActivityResult {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
if (mCurrentPhotoPath != null) {
galleryAddPic(); //Method to save the pic in the gallery
finishActivity();
} else {
Log.e("ActivityResult", "Photo path is null");
}
} else if (resultCode == RESULT_CANCELED) {
finishActivity();
}
}
编辑2:我刚刚解决了第二个问题,我是开始开发应用程序的初学者,我不知道旋转设备重新启动界面,OnCreate之后对数据的所有修改都应该保存在OnSaveInstanceState上。
现在我只有一个问题。我尝试了其他设备中的奇怪行为,它也是一样的。