Android – ImageView no muestra la foto tomada con la cámara

Por favor, tenga paciencia conmigo … he estado buscando DAYS por un trabajo, desnudo-huesos fragmento de código que inicia la actividad de la cámara, toma una foto, y lo coloca en un simple ImageView>. <El código publicado por debajo de los incendios Hasta la actividad y toma la foto bien, pero la imagen no se muestra en el ImageView! ¿Qué es lo que falta? Unesdoc.unesco.org

public class MainActivity extends Activity { private static final int PICK_IMAGE = 0; private static final int PICK_IMAGE_FROM_GALLERY = 1; private Button mBtnCamera, mBtnGallery, mBtnCancel; private ImageView mImageView; private Uri mURI; private String mPhotoPath; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mImageView = (ImageView) findViewById(R.id.imgDisplayImage); mBtnCamera = (Button) findViewById(R.id.btnPhotoCamera); mBtnGallery = (Button) findViewById(R.id.btnPhotoGallery); mBtnCancel = (Button) findViewById(R.id.btnCancel); mBtnCamera.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent camera = new Intent(); camera.setAction(MediaStore.ACTION_IMAGE_CAPTURE); camera.putExtra("crop", "true"); File f = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); mURI = Uri.fromFile(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "myFile.jpg")); camera.putExtra(MediaStore.EXTRA_OUTPUT, mURI); startActivityForResult(camera, PICK_IMAGE); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == PICK_IMAGE) { // Result includes a Bitmap thumbnail? if (data != null) { if (data.hasExtra("data")) { //Bitmap thumbnail = data.getParcelableExtra("data"); Bitmap thumbnail = (Bitmap) data.getExtras().get("data"); mImageView.setImageBitmap(thumbnail); } } // If there is no thumbnail data, the image will have been stored in target output URI. else { Cursor cursor = getContentResolver().query( Media.EXTERNAL_CONTENT_URI, new String[] { Media.DATA, Media.DATE_ADDED, MediaStore.Images.ImageColumns.ORIENTATION }, Media.DATE_ADDED, null, "date_added ASC" ); if (cursor != null && cursor.moveToFirst()) { do { mURI = Uri.parse(cursor.getString(cursor.getColumnIndex(Media.DATA))); mPhotoPath = mURI.toString(); } while (cursor.moveToNext()); cursor.close(); } // Resize full image to fit out in image view. int width = mImageView.getWidth(); int height = mImageView.getHeight(); BitmapFactory.Options factoryOptions = new BitmapFactory.Options(); factoryOptions.inJustDecodeBounds = true; BitmapFactory.decodeFile(/*mURI.getPath()*/ mPhotoPath, factoryOptions); int imageWidth = factoryOptions.outWidth; int imageHeight = factoryOptions.outHeight; // Determine how much to scale down the image int scaleFactor = Math.min( imageWidth/width, imageHeight/height ); // Decode the image file into a Bitmap sized to fill view factoryOptions.inJustDecodeBounds = false; factoryOptions.inSampleSize = scaleFactor; factoryOptions.inPurgeable = true; Bitmap bitmap = BitmapFactory.decodeFile(/*mURI.getPath()*/ mPhotoPath, factoryOptions); mImageView.setImageBitmap(bitmap); } } } } 

3 Solutions collect form web for “Android – ImageView no muestra la foto tomada con la cámara”

Tuve el mismo problema en algunos dispositivos de samsung android Luego implementé la lógica para obtener el camino de la foto capturada.

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == PICK_IMAGE) { Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE); Cursor cursor = getContentResolver().query(Media.EXTERNAL_CONTENT_URI, new String[]{Media.DATA, Media.DATE_ADDED, MediaStore.Images.ImageColumns.ORIENTATION}, Media.DATE_ADDED, null, "date_added ASC"); if(cursor != null && cursor.moveToFirst()) { do { uri = Uri.parse(cursor.getString(cursor.getColumnIndex(Media.DATA))); photoPath = uri.toString(); }while(cursor.moveToNext()); cursor.close(); } if(photoPath != null) { Bitmap bitmap = BitmapFactory.decodeFile(photoPath); ///Do Implement your logic whatever you want. mImageView.setImageBitmap(bitmap); } } } 

Probado y probado para trabajar en un teléfono Galaxy S3. Agradecemos a los TGM por su ayuda.

 public class MainActivity extends Activity { private static final int PICK_IMAGE = 0; private static final int PICK_IMAGE_FROM_GALLERY = 1; private Button mBtnCamera, mBtnGallery, mBtnCancel; private ImageView mImageView; private Uri mURI; private String mPhotoPath; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mImageView = (ImageView) findViewById(R.id.imgDisplayImage); mBtnCamera = (Button) findViewById(R.id.btnPhotoCamera); mBtnGallery = (Button) findViewById(R.id.btnPhotoGallery); mBtnCancel = (Button) findViewById(R.id.btnCancel); mBtnCamera.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent camera = new Intent(); camera.setAction(MediaStore.ACTION_IMAGE_CAPTURE); camera.putExtra("crop", "true"); File f = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); mURI = Uri.fromFile(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "myFile.jpg")); camera.putExtra(MediaStore.EXTRA_OUTPUT, mURI); startActivityForResult(camera, PICK_IMAGE); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK) { if (requestCode == PICK_IMAGE) { Cursor cursor = getContentResolver().query( Media.EXTERNAL_CONTENT_URI, new String[] { Media.DATA, Media.DATE_ADDED, MediaStore.Images.ImageColumns.ORIENTATION }, Media.DATE_ADDED, null, "date_added ASC" ); if (cursor != null && cursor.moveToFirst()) { do { mURI = Uri.parse(cursor.getString(cursor.getColumnIndex(Media.DATA))); mPhotoPath = mURI.toString(); } while (cursor.moveToNext()); cursor.close(); } if (data != null) { if (data.hasExtra("data")) { Bitmap thumbnail = (Bitmap) data.getExtras().get("data"); mImageView.setImageBitmap(thumbnail); } else { System.out.println("Intent bundle does not have the 'data' Extra"); int width = mImageView.getWidth(); int height = mImageView.getHeight(); BitmapFactory.Options factoryOptions = new BitmapFactory.Options(); factoryOptions.inJustDecodeBounds = true; BitmapFactory.decodeFile(/*mURI.getPath()*/ mPhotoPath, factoryOptions); int imageWidth = factoryOptions.outWidth; int imageHeight = factoryOptions.outHeight; // Determine how much to scale down the image int scaleFactor = Math.min( imageWidth/width, imageHeight/height ); // Decode the image file into a Bitmap sized to fill view factoryOptions.inJustDecodeBounds = false; factoryOptions.inSampleSize = scaleFactor; factoryOptions.inPurgeable = true; Bitmap bitmap = BitmapFactory.decodeFile(/*mURI.getPath()*/ mPhotoPath, factoryOptions); mImageView.setImageBitmap(bitmap); } } } } else { System.out.println("Picture taking activity NOT returning RESULT_OK"); } } } 

Trate de añadir

 sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory()))); 

(Y un ligero retraso) dentro de la

  if (requestCode == PICK_IMAGE) 

bloquear. Creo que el problema podría ser que su dispositivo no está actualizando el almacén de medios correctamente.

(Por supuesto, la mejor acción sería usar MediaScanner para escanear su archivo )

  • Imageview Roundcorner no funciona para las cuatro esquinas
  • Mostrando la imagen de Gif animado en android usando VideoView
  • La ondulación se dibuja a continuación ImageView
  • Centre ImageView dentro de otro ImageView en Android
  • ¿La llamada de runOnUiThread de Android llama a getView () en Adapters?
  • Cambiar el tamaño de ImageView en tiempo de ejecución mediante un botón - Android
  • Android Lollipop: ImageView ignorando el atributo fitsSystemWindows (barra de estado transparente)
  • Hacer diferencias entre setOnClickListener y setOnTouchListener
  • ¿Cómo destruir un dibujable dentro de un ImageView si no lo necesitamos?
  • Diferencia entre un ImageView y ImageButton que puede hacer clic
  • Corners ImgeView fit dentro de CardView no tiene radio como las esquinas de CardView en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.