Using the camera activity in Android
Asked Answered
D

1

36

If you want to use the built-in camera activity which uses the native Android camera, simply do the following.

Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);   
        this.startActivityForResult(camera, PICTURE_RESULT);

You want to get the images back from the nifty camera you displayed -- but how?

Dossal answered 22/2, 2010 at 23:2 Comment(2)
Well, my question is: whats PICTURE_RESULT?Mclaurin
PICTURE_RESULT is a self-defined constant. The value that you pass to startActivityResult() as the requestCode will be the same value that is passed to onActivityResult() when your Intent is done so that you know what Intent is returning the result.Trioxide
D
23

If you want to get the image back in its full glory, pass in a uri to the Intent within the EXTRA_OUTPUT extra. If you're fine with a smallish bitmap (and you should be), just call the intent as normal.

Now you have two options, deal with the uri of the image that is returned in the EXTRA_OUTPUT extra, or do the following in your onActivityResult method:

if (requestCode == PICTURE_RESULT) //
             if (resultCode == Activity.RESULT_OK) {
                // Display image received on the view
                 Bundle b = data.getExtras(); // Kept as a Bundle to check for other things in my actual code
                 Bitmap pic = (Bitmap) b.get("data");

                 if (pic != null) { // Display your image in an ImageView in your layout (if you want to test it)
                     pictureHolder = (ImageView) this.findViewById(R.id.IMAGE);
                     pictureHolder.setImageBitmap(pic);
                     pictureHolder.invalidate();
                 }
             }
             else if (resultCode == Activity.RESULT_CANCELED) {...}
    }

And there you go!

Dossal answered 18/4, 2011 at 6:45 Comment(1)
thanks slrobert this helped me a lot. So many other tutorials explained implementing the camera functionality from scratch rather than simply raising an ActivityForResult and having the default camera activity handle things!Airing

© 2022 - 2024 — McMap. All rights reserved.