VVB
VVB

Reputation: 7641

Android OS Calling onActivityResult before picking up image from gallery

I am facing a weird problem while picking image from gallery and setting to ImageView. Earlier my code is working fine but when I test it now, it goes inside onActivityResult before selecting image from gallery. Below is my code:

CODE FOR CALLING Gallery:

  Intent intent = new Intent();
  intent.setType("image/*");
  intent.setAction(Intent.ACTION_GET_CONTENT);
  startActivityForResult(Intent.createChooser(intent, "Select Picture"),
    PICK_IMAGE);

CODE INSIDE onActivityResult

 if (requestCode == PICK_IMAGE && resultCode == Activity.RESULT_OK
   && null != data) {
  Uri selectedImage = data.getData();
  String[] filePathColumn = { MediaStore.Images.Media.DATA };

  Cursor cursor = getActivity().getContentResolver().query(selectedImage,
    filePathColumn, null, null, null);
  cursor.moveToFirst();

  int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
  String picturePath = cursor.getString(columnIndex);
  cursor.close();

  decodeFile(picturePath);

 }

CODE of decodeFile function:

public void decodeFile(String filePath) {
 // Decode image size
 BitmapFactory.Options o = new BitmapFactory.Options();
 o.inJustDecodeBounds = true;
 BitmapFactory.decodeFile(filePath, o); 

 // The new size we want to scale to
 final int REQUIRED_SIZE = 2048;

 // Find the correct scale value. It should be the power of 2.
 int width_tmp = o.outWidth, height_tmp = o.outHeight;
 int scale = 1;
 while (true) {
  if (width_tmp < REQUIRED_SIZE && height_tmp < REQUIRED_SIZE)
   break;
  width_tmp /= 2;
  height_tmp /= 2;
  scale *= 2;
 }

 // Decode with inSampleSize
 BitmapFactory.Options o2 = new BitmapFactory.Options();
 o2.inSampleSize = scale;
 bitmap = BitmapFactory.decodeFile(filePath, o2);

 customerIdProofUrlImageView.setImageBitmap(bitmap);
}

I don't know where is the fault. Tested on Galaxy Grand & Micromax A104.

Upvotes: 2

Views: 194

Answers (1)

Daniel Mashraki
Daniel Mashraki

Reputation: 262

Check this: onActivityResult return before pick up image

Try to remove android:launchMode="singleInstance" line in manifest file.

Upvotes: 2

Related Questions