Cómo pasar la imagen predeterminada a la actividad anterior si no se selecciona ninguna imagen
En mi aplicación, tengo una función de cámara. El usuario puede capturar la imagen o escoger de la galería.
Actividad B
- Android Studio AndroidManifest.xml vs build.gradle
- Creación rápida de Android app - Java o nativo?
- Android desventajas de no cerrar el cursor
- Descargar varios archivos utilizando un servicio en android
- FPS malo en el juego 2D android / java en dispositivos de alta definición
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case RESULT_LOAD_IMAGE: if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK & null != data) { selectedImage = data.getData(); imageView.setImageURI(selectedImage); } break; case REQUEST_IMAGE_CAPTURE: if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { try { selectedImage = imageUri; getContentResolver().notifyChange(selectedImage, null); imageView.setImageURI(null); imageView.setImageURI(imageUri); } catch (Exception e) { Toast.makeText(this, "Failed to load", Toast.LENGTH_SHORT) .show(); } } } } submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent returnIntent = new Intent(); if(selectedImage!=null) { returnIntent.putExtra("img_uri", selectedImage.toString()); } setResult(Activity.RESULT_OK, returnIntent); finish(); } });
Cuando se hace clic en el botón de envío, volverá a la actividad anterior.
Actividad A
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { if (requestCode == PROJECT_REQUEST_CODE) { imgURI = Uri.parse(data.getStringExtra("img_uri")); if (mClickedPosition == -1) { if (obj != null) obj.addNewItem(imgURI); } else { if (obj != null) obj.changeItem(mClickedPosition, imgURI); } } } }
Mi pregunta ahora es cómo pasar una imagen predeterminada a la Actividad A ¿Si el usuario no seleccionó ninguna imagen?
Esta es la xml imageView
de la Actividad B
<ImageView android:paddingTop="30dp" android:layout_gravity="center" android:layout_width="330dp" android:layout_height="wrap_content" android:adjustViewBounds="true" android:src="@mipmap/no_image" android:scaleType="fitXY" android:id="@+id/imageView" android:layout_weight="0.50" />
Si no hay ninguna imagen seleccionada, quiero @mipmap/no_image
volver a la Actividad B. ¿Es posible? Gracias.
- Bitwise "&" en un largo?
- Error de Android Studio XML
- Cómo crear un oyente de voleibol adecuado para llamadas de método de volea de clase cruzada
- Eclipse ADT: Java se inició pero devolvió el código de salida = 13
- Cargando imagen con deslizamiento es lento
- Cuál es la mejor manera de obtener la cadena de BufferedReader
- Rellene EditarTexto de cualquier aplicación de (Accesibilidad) Servicio?
- Pantalla completa DialogFragment se superpone con StatusBar
Puede pasar un Uri de su imagen almacenada en recursos de la siguiente manera:
submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent returnIntent = new Intent(); if(selectedImage!=null) { returnIntent.putExtra("img_uri", selectedImage.toString()); } else { returnIntent.putExtra("img_uri", Uri.parse("android.resource://your.package.name/mipmap/no_image").toString()); } setResult(Activity.RESULT_OK, returnIntent); finish(); } });
A continuación, puede utilizarlo como de costumbre Uri para mostrar la imagen en ImageView
.
ByDefault establece el valor de selectedImage
en "default".
Ahora en su addNewItem()
y changeItem()
comprobar el valor pasado en imageUri
if(imageUri.equalsIgnoreCase("default")) // set your default image that is @mipmap/no_image else // set image you are getting from imageUri
No es necesario devolver una imagen predeterminada a la Actividad A. Como otros escribieron, sólo tiene que prepararse para la condición cuando el usuario no seleccione ninguna imagen. Modifique su onActivityResult para la actividad A así:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(data!=null){ switch (requestCode) { case RESULT_LOAD_IMAGE: if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK) { selectedImage = data.getData(); imageView.setImageURI(selectedImage); } break; case REQUEST_IMAGE_CAPTURE: if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { try { selectedImage = imageUri; getContentResolver().notifyChange(selectedImage, null); imageView.setImageURI(imageUri); } catch (Exception e) { Toast.makeText(this, "Failed to load", Toast.LENGTH_SHORT).show(); } } break; default: //Your default image goes here, when the user doesn't select either of the two options imageView.setImageResource(R.drawable.<default_image>); break; } }
Código:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case RESULT_LOAD_IMAGE: if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK & null != data) { selectedImage = data.getData(); imageView.setImageURI(selectedImage); }else{ //set default } break; case REQUEST_IMAGE_CAPTURE: if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { try { selectedImage = imageUri; getContentResolver().notifyChange(selectedImage, null); imageView.setImageURI(null); imageView.setImageURI(imageUri); } catch (Exception e) { Toast.makeText(this, "Failed to load", Toast.LENGTH_SHORT) .show(); } }else{ //set default } default{ //set default } }
- InputMethodManager contiene referencia al tabhost – Memory Leak – OOM Error
- Error de FileProvider en los dispositivos Huawei