在我的应用中,我将两张图片插入两个图片视图,并使用活动结果从图库中获取照片。
private void showFileChooser () {
mHandler.post(new Runnable() {
@Override
public void run() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
}
});
}
private void showFileChooser2 () {
mHandler.post(new Runnable() {
@Override
public void run() {
Intent intent2 = new Intent();
intent2.setType("image/*");
intent2.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent2, "Select Picture"), PICK_IMAGE_REQUEST2);
}
});
}
@Override
protected void onActivityResult ( int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri filePath = data.getData();
try {
//Getting the Bitmap from Gallery
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
rbitmap = getResizedBitmap(bitmap, 1000);//Setting the Bitmap to ImageView
imageViewUserImage.setImageBitmap(rbitmap);
imageViewUserImage.requestFocus();
} catch (IOException e) {
e.printStackTrace();
}
}else if (requestCode == PICK_IMAGE_REQUEST2 && resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri filePath2 = data.getData();
try {
//Getting the Bitmap from Gallery
bitmap2 = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath2);
rbitmap2 = getResizedBitmap(bitmap2, 1000);//Setting the Bitmap to ImageView
imageViewUserImage2.setImageBitmap(rbitmap2);
imageViewUserImage2.requestFocus();
} catch (IOException e) {
e.printStackTrace();
}
}
}
该应用程序运行良好,但有时会发生奇怪的事情。有时,一旦我在图库中单击所需的照片,该应用程序将返回到主要活动,并且我发现另一个图像视图中先前加载的图像被删除了。有时,在其中一个图片中加载图片会在另一个图片中删除加载的图片。 这种故障并非总是会发生,有时会发生,有时应用程序可以正常运行而没有任何问题。
我该如何解决?
答案 0 :(得分:0)
在“ e.printStackTrace();”上的捕获中放置一个断点线。 玩应用程序,然后查看失败原因。 没有任何堆栈跟踪,我们只能猜测原因。
答案 1 :(得分:0)
我发现了问题。图像的大小有点大,因此出现“内存不足”错误。为了避免此类问题,我在if情况下回收了每个位图。
AVCaptureSession