martes, 14 de noviembre de 2017

Creating camera intent app using Kotlin on android - Creando Intent Camara usando Kotlin



Creamos un nuevo Empty Activity llamado Camera, en el Layout activity_camera añadimos un ImageView y un boton




Al imageView le definimos como ID 
android:id="@+id/photoimageView"

al botón
android:id="@+id/button_camera_take"

Codigo de camera.kt
import android.graphics.Bitmap
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.provider.MediaStore
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_camera.*

class camera : AppCompatActivity() {

    val CAMERA_REQUEST_CODE = 0
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_camera)

        button_camera_take.setOnClickListener{              val callCameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
            if(callCameraIntent.resolveActivity(packageManager) != null) {
                startActivityForResult(callCameraIntent, CAMERA_REQUEST_CODE)
            }
        }    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)

        when(requestCode){
            CAMERA_REQUEST_CODE -> {
                if(resultCode == Activity.RESULT_OK && data != null){
                    photoimageView.setImageBitmap(data.extras.get("data") as Bitmap)
                }
            }
            else -> {
                Toast.makeText(this, "Unrecognized request code", Toast.LENGTH_SHORT).show()
            }
        }
    }
}

3 comentarios:

  1. Por fin encuentro un codigo que le funciona a mi APP y en Kotlin, me has solucionado un gran problema, Gracias Crack! <3

    ResponderEliminar
  2. Hola!! Me devuelve "Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Bundle?" y si le saco el ? a Bundle me dice que onCreate overwrites nothing. Soy nuevo en Kotlin, si me pueden ayudar, muchas gracias!

    ResponderEliminar
  3. Fernando es por que no puede ser nulo y debes asignarle el ? al final de extras.

    ResponderEliminar