Skip to content Skip to sidebar Skip to footer

Can't Get The Image From Gallery Using Fragment

I want to get the image from the gallery and replace the initial image of the imageView. But it does not change even if select the image in the gallery. I examined if it works norm

Solution 1:

Use custom function get Absolute path of get image bitamp :

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
   if(requestCode == REQUEST_GALLERY && resultCode == Activity.RESULT_OK) {
      try {
          imageView.setImageBitmap(BitmapFactory.decodeFile(getAbsolutePath(data.getData())));
      } catch (Exception e) {
      }
    } 
}

 public String getAbsolutePath(Uri uri) {
    if(Build.VERSION.SDK_INT >= 19){
        String id="";
        if(uri.getLastPathSegment().split(":").length>0){
            id = uri.getLastPathSegment().split(":")[1];
        }else{
            id = uri.getLastPathSegment().split(":")[0];
        }
        final String[] imageColumns = {MediaStore.Images.Media.DATA };
        final String imageOrderBy = null;
        Uri tempUri = getUri();
        Cursor imageCursor = getContentResolver().query(tempUri, imageColumns,MediaStore.Images.Media._ID + "="+id, null, imageOrderBy);
        if (imageCursor.moveToFirst()) {
            return imageCursor.getString(imageCursor.getColumnIndex(MediaStore.Images.Media.DATA));
        }else{
            return null;
        }
    }else{
        String[] projection = { MediaColumns.DATA };
        Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
        if (cursor != null) {
            int column_index = cursor.getColumnIndexOrThrow(MediaColumns.DATA);
            cursor.moveToFirst();
            return cursor.getString(column_index);
        } else
            return null;
    }
}

Solution 2:

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if (requestCode == CODE_GALLERY_REQUEST){
        if (grantResults.length >0 && grantResults[0]== PackageManager.PERMISSION_GRANTED){
            Intent intent = new Intent(Intent.ACTION_PICK);
            intent.setType("image/*");
            startActivityForResult(Intent.createChooser(intent,"Select deposit slip"), CODE_GALLERY_REQUEST);

        }else{
            Toast.makeText(getActivity(),"You dont Have permission",Toast.LENGTH_LONG).show();
        }
        return;
    }

    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}

Post a Comment for "Can't Get The Image From Gallery Using Fragment"