我有一个简单的片段,当用户点击屏幕时,它会发送一个Intent来打开Camera应用程序,然后期望返回一个图像。
public void camera() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == Activity.RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap)extras.get("data");
imageView.setImageBitmap(imageBitmap);
}
}
根据Google developer,这应该是所有必需的。
拍完照片后,我按相机应用程序中的SAVE
按钮,它会返回我的应用程序。
我在onDestroy()
和onActivityResult()
中设置了一些断点,它首先销毁片段并创建一个新片段2次,然后调用onActivityResult()
然后它......再次被毁......并创造了。所以图像会丢失。
为什么会发生这种情况,我该如何解决?
在Samsung S4上运行
答案 0 :(得分:0)
您是否尝试使用名为EXTRA_OUTPUT
的额外意图,该照片会将照片存储在给定的uri
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent , Request_Id);
答案 1 :(得分:0)
我找到了一个脏的修复(脏imo看起来很奇怪)
在AndroidManifest.xml
中将此参数添加到处理相机意图的Activity
:
android:configChanges="orientation|screenSize"
Activity
被摧毁,因为往来于Camera应用程序的转换中的方向更改...使用此参数它不会破坏。