Abrir Camara, Tomar Foto y mostrar Imagen en Android Studio

Vamos a crear un proyecto o aplicacion en android studio que abrira la camara de android para que tomemos una foto y la foto se muestre en un ImageView desde la aplicacion de Android.

De el lado del diseño de la aplicacion solo vamos a usar un boton y un elemento imageview.

La funcion del boton es abrir la camara y despues de tomarnos la foto, dicha foto se mostrara en el imageview.

Ahora veamos el codigo.

Codigo

Primero definimos las dos variables el boton y el imageview.

    Button b1;
    ImageView iv1;

Despues le asignamos al Button, el elemento button que esta en el dise~o y al imageview igualmente le asignamos el elemento que esta en el dise~o.

Tambien le asignanos al Button la funcion de abrir la camara al darle click.

b1 = (Button)findViewById(R.id.button);
        iv1 = (ImageView)findViewById(R.id.imageView);

        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent camerai = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(camerai, 123);
            }
        });

Y en el metodo onActivityResult que es el metodo que se ejecuta despues que se toma la foto para regresar a nuestra aplicacion.

        if (requestCode == 123) {
            // Se guarda la foto en una variable tipo bitmap
            Bitmap photo = (Bitmap) data.getExtras().get("data");
            // Se muestra la imagen en el imageview
            iv1.setImageBitmap(photo);
        }

Y listo a continuacion les dejo el codigo completo y tambien la opcion para descargar el proyecto y el APK.

    Button b1;
    ImageView iv1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        b1 = (Button)findViewById(R.id.button);
        iv1 = (ImageView)findViewById(R.id.imageView);

        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent camerai = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(camerai, 123);
            }
        });
    }
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        // Se busca que el codigo conincida
        if (requestCode == 123) {
            // Se guarda la foto en una variable tipo bitmap
            Bitmap photo = (Bitmap) data.getExtras().get("data");
            // Se muestra la imagen en el imageview
            iv1.setImageBitmap(photo);
        }
    }

El permiso en el Manifiesto

Aunque el Intent de la cámara a veces funciona sin permisos explícitos en versiones antiguas, para asegurar la compatibilidad (especialmente si planeas subir el APK), es vital agregar esto al AndroidManifest.xml:

<uses-feature android:name="android.hardware.camera" android:required="true" />

Validación de la Cámara

A veces, si un dispositivo no tiene una aplicación de cámara instalada (o está desactivada), la app podría cerrarse inesperadamente al presionar el botón. Una buena práctica es verificar si hay alguna app que pueda responder al Intent:

if (camerai.resolveActivity(getPackageManager()) != null) {
    startActivityForResult(camerai, 123);
}

Descargar

Link: https://drive.google.com/file/d/1z3kYwlTOep4Iq_ZXrDRChR8XdbLHnEly/view

El archivo APK se encuentra en la ubicacion: OpenCamera/app/build/outputs/apk/debug/app-debug.apk

📦 Sugerencia: Si te interesa el desarrollo de sistemas de inventario, te recomendamos echar un vistazo a Inventio Max, nuestra solución más completa para empresas.

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from Evilnapsis

Subscribe now to keep reading and get access to the full archive.

Continue reading