visor una studio ruta obtener mostrar manipular imagenes imagen galeria desde cargar almacenada android android-intent imageview android-gallery

mostrar - obtener la ruta de una imagen android studio



Obtener imagen de la galerĂ­a y mostrar en ImageView (2)

Necesito obtener una imagen de la galería con un clic en el botón y mostrarla en la vista de imagen.

Lo estoy haciendo de la siguiente manera:

btn_image_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getImageFromAlbum(); } });

La definición del método es como:

private void getImageFromAlbum(){ try{ Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(i, RESULT_LOAD_IMAGE); }catch(Exception exp){ Log.i("Error",exp.toString()); } }

El método de resultado de la actividad es

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) { Uri selectedImage = data.getData(); String[] filePathColumn = { MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String picturePath = cursor.getString(columnIndex); cursor.close(); try { bmp = getBitmapFromUri(selectedImage); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } image_view.setImageBitmap(bmp); //to know about the selected image width and height Toast.makeText(MainActivity.this, image_view.getDrawable().getIntrinsicWidth()+" & "+image_view.getDrawable().getIntrinsicHeight(), Toast.LENGTH_SHORT).show(); } }

El problema

El problema al que me enfrento es cuando la resolución de la imagen es alta, supongamos que si el tamaño de la imagen es de 5mp a 13mp. No se carga y se muestra en la vista de imagen.

¡Pero las imágenes con un ancho y una altura bajos se cargan correctamente en la vista de imagen!

¿Alguien puede decirme algún problema con el código y qué estoy haciendo mal? ¡Solo quiero importar las imágenes de la cámara desde la galería y mostrarlas en la vista de imagen!


Uso este código: este código se usa para iniciar la actividad de la galería.

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); photoPickerIntent.setType("image/*"); startActivityForResult(photoPickerIntent, GALLERY_REQUEST);

Y obtener resultados en:

@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode == Activity.RESULT_OK) switch (requestCode){ case GALLERY_REQUEST: Uri selectedImage = data.getData(); try { Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), selectedImage); carImage.setImageBitmap(bitmap); } catch (IOException e) { Log.i("TAG", "Some exception " + e); } break; } }

Y no perdones el permiso en AndroidManifest.

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>


puedes probar esto

pega este código en tu evento de clic de botón.

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); photoPickerIntent.setType("image/*"); startActivityForResult(photoPickerIntent, RESULT_LOAD_IMG);

y debajo del código es su resultado de actividad

@Override protected void onActivityResult(int reqCode, int resultCode, Intent data) { super.onActivityResult(reqCode, resultCode, data); if (resultCode == RESULT_OK) { try { final Uri imageUri = data.getData(); final InputStream imageStream = getContentResolver().openInputStream(imageUri); final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream); image_view.setImageBitmap(selectedImage); } catch (FileNotFoundException e) { e.printStackTrace(); Toast.makeText(PostImage.this, "Something went wrong", Toast.LENGTH_LONG).show(); } }else { Toast.makeText(PostImage.this, "You haven''t picked Image",Toast.LENGTH_LONG).show(); } }

es útil para usted.