Hola, hoy veremos un nuevo tutorial, de como utilizar la cámara de tu celular en android studio, si bien esta es una guía rápida y básica te muestro una manera muy buena de tomar una imagen almacenarla en una carpeta creada y luego mostrarla en un imageview, para conseguir esto utilizaremos un intent para llamar a la cámara por medio de la constante ACTION_IMAGE_CAPTURE si deseas saber algo mas al respecto debes visitar este enlace aquí.
Sin mas rodeos empezamos con este tutorial.
PASO 1: Debemos ir a nuestro AndroidManifest.xml y dar unos permiso que nos permitirán hacer cambios y registros a la hora que creamos una carpeta y guardamos la imagen en ella.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
PASO 2: Bien ahora debemos crear nuestro botón y el imageview, el boton tendra por id btn_camara y el imageview tendrá por id imgMostrar y se vera como la siguiente imagen:
Les dejo también el modo text
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.androidmorefast.pc.appcamarabasica.MainActivity"> <Button android:id=“@+id/btn_camara” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:layout_alignParentTop=“true” android:layout_centerHorizontal=“true” android:layout_marginTop=“26dp” android:text=“Hacer Foto” /> <ImageView android:id=“@+id/imgMostrar” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:layout_below=“@+id/btn_camara” android:layout_centerHorizontal=“true” android:layout_marginTop=“20dp”/> </RelativeLayout>
PASO 3: Ahora nos toca mirar el código, así que tendremos que agregar lo siguiente en la clase que estemos trabajando, en mi caso sera el MainActivity.java
public class MainActivity extends Activity { //Necesitamos un Boton y un imageView private Button btn_hacerfoto; private ImageView img; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Relacionamos con el XML img = (ImageView)this.findViewById(R.id.imgMostrar); btn_hacerfoto = (Button) this.findViewById(R.id.btn_camara); //Añadimos el Listener Boton btn_hacerfoto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //Creamos el Intent para llamar a la Camara Intent cameraIntent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE); //Creamos una carpeta en la memeria del terminal File imagesFolder = new File( Environment.getExternalStorageDirectory(), “AndroidFacil”); imagesFolder.mkdirs(); //añadimos el nombre de la imagen File image = new File(imagesFolder, “foto.jpg”); Uri uriSavedImage = Uri.fromFile(image); //Le decimos al Intent que queremos grabar la imagen cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); //Lanzamos la aplicacion de la camara con retorno (forResult) startActivityForResult(cameraIntent, 1); }}); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { //Comprovamos que la foto se a realizado if (requestCode == 1 && resultCode == RESULT_OK) { //Creamos un bitmap con la imagen recientemente //almacenada en la memoria Bitmap bMap = BitmapFactory.decodeFile( Environment.getExternalStorageDirectory()+ “/AndroidFacil/”+“foto.jpg”); //Añadimos el bitmap al imageView para //mostrarlo por pantalla img.setImageBitmap(bMap); } } }
Y con eso hemos terminado……….
Hola soy Alex Céspedes fundador de ANDROFAST, programo algunas cosas por diversión, me gusta aprender cosas nuevas y estoy pendiente de todo lo que tenga que ver con tecnología. Este blog lo cree para todas las personas que tengan dificultades en la programación, para ser sincero nunca fui bueno y reprobé algunos cursos de programación, pero mis ganas de aprender pudieron más. SI YO PUEDO TU PUEDES ANIMO!
Hola amigo, lo intento péro me sale Stop Debuggin. se cierra la app, aclaro que la estoy intentando ejecutar desde el emulador. Gracias por el aporte, si me puedes orientar te lo agradezco
Si aun no lo ha resuelto siga estas instrucciones del siguiente enlace para poderle dar una ayuda personalizada. https://www.androfast.com/2017/02/como-pedir-ayuda.html
Hola, muchas gracias por tu aportación pero muestra el siguiente problema
E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb9982878
No se si me podrías ayudar 🙁 por favor
Has dado los permisos de lo contrario sigue esta guia: https://www.androfast.com/2017/08/como-utilizar-la-camara-del-celular-en.html
si de echo crei ese seria el problema y realice los permisos pero ni aun así se soluciona, me permite ingresar a la app, me permite abrir la cámara presiono la palomita pero ya no me permite guardarlo, mi teléfono tiene android 6.0, lo eh probando en eversiones anteriores y funciona sin ningún problema.
hola, como sera si quisiera no solo guardar una imagen si no distintas tomadas por el móvil me explico crear como un array para almacenar imagenes pero que se llene cada vez que tomo una nueva foto gracias
Siga esta guía: https://www.androfast.com/2017/12/como-subir-multiples-imagenes-una-base.html
Pingback: Como leer palabras con la cámara del móvil en android - ANDROFAST
Pingback: Como leer palabras con la cámara del móvil en android | ANDROFAST