Estoy usando este código ahora que toma imágenes de la cámara y luego las compartirá.
importar android.annotation.TargetApi;
importar android.content.Intent;
importar android.graphics.Bitmap;
importar Android Forum.Uri;
importar android.os.Build;
importar android.os.Bundle;
importar android.provider.MediaStore;
importar android.support.v7.app.ActionBarActivity;
importar android.view.View;
importar android.widget.Button;
importar android.widget.ImageView;
importar android.widget.Toast;
SharePictureActivity de clase pública extiende ActionBarActivity {
- ¿Cuáles son las mejores prácticas de diseño de software para la codificación en un entorno de investigación?
- ¿Cuál es el mejor lenguaje de programación para la aplicación de chat como WhatsApp?
- ¿Por qué el diseño de software es una parte importante del desarrollo de software?
- ¿Cuáles son los mejores programas gratuitos de aprendizaje de inglés para Windows?
- Estoy pensando en crear un video para mi aplicación móvil. ¿De dónde puedo obtenerlo?
Botón privado cameraButton;
Botón privado sharePicture;
miniatura privada de ImageView;
imagen pública de mapa de bits;
imagen pública de UriUri;
private int PHOTO_ID = 101;
@Anular
vacío protegido onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_share_picture);
cameraButton = (Botón) findViewById (Página en r.id.share_picture_camera_button);
sharePicture = (Botón) findViewById (Página en r.id.share_picture_share_button);
thumbnail = (ImageView) findViewById (Página en r.id.share_picture_thumbnail);
setupEvents ();
setupActionBar ();
}
privado vacío setupEvents () {
cameraButton.setOnClickListener (nueva View.OnClickListener () {
@Anular
public void onClick (Ver v) {
Intención intención = nueva intención (MediaStore.ACTION_IMAGE_CAPTURE);
// startActivity (intento);
// ^^ esto nos llevará a la actividad de la Cámara, sin embargo, no devolverá ninguna información, incluso si
// tomamos una foto, entonces tendríamos que buscarla manualmente y usar algo
// como un ContentProvider para hacerlo accesible. MediaStore + startActivityForResult = magic 🙂
startActivityForResult (intento, PHOTO_ID);
}
});
sharePicture.setOnClickListener (nueva View.OnClickListener () {
@Anular
public void onClick (Ver v) {
if (imagen == nulo) {
makeToast (“¡Tome una foto válida primero!”);
} más {
Intención intención = nueva intención (Intent.ACTION_SEND);
intent.setType (“image / jpeg”);
intent.putExtra (Intent.EXTRA_STREAM, pictureUri);
startActivity (Intent.createChooser (intento, “Compartir imagen con …”));
}
}
});
}
@Anular
vacío protegido en OnActivityResult (int requestCode, int resultCode, Intent intent) {
if (requestCode == PHOTO_ID) {
if (resultCode == RESULT_OK) {
// ^^ nos devolvieron una foto, de lo contrario obtendríamos un RESULT_CANCELLED
this.showPicture (intento);
}
}
}
showPicture privado vacío (intento de intención) {
Paquete intentExtras = intent.getExtras ();
picture = (Bitmap) intentExtras.get (“datos”);
pictureUri = intent.getData ();
if (imagen! = nulo) {
thumbnail.setImageBitmap (imagen);
makeToast (“¡Imagen configurada con éxito!”);
}
}
@TargetApi (Build.VERSION_CODES.HONEYCOMB)
public void setupActionBar () {
if (Build.VERSION.SDK_INT> = Build.VERSION_CODES.HONEYCOMB) {
android.app.ActionBar actionBar = getActionBar ();
actionBar.setDisplayHomeAsUpEnabled (verdadero);
}
}
makeToast privado (mensaje de cadena) {
Toast toast = Toast.makeText (getApplicationContext (), mensaje, Toast.LENGTH_SHORT);
tostada.show ();
}
}