Hi all,

After doing some reading, I realized it can't be done so simply. My
modded Contacts source is at http://github.com/Wysie, you can take a
look if you're interested. Also, here's what I did to get it working:

    private void doTakePhotoAction() {
        // http://2009.hfoss.org/Tutorial:Camera_and_Gallery_Demo
        // 
http://stackoverflow.com/questions/1050297/how-to-get-the-url-of-the-captured-image
        // http://www.damonkohler.com/2009/02/android-recipes.html
        // http://www.firstclown.us/tag/android/
        // The one I used to get everything working:
http://groups.google.com/group/android-developers/msg/2ab62c12ee99ba30

        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

        //Wysie_Soh: Create path for temp file
        mImageCaptureUri = Uri.fromFile(new File
(Environment.getExternalStorageDirectory(),
                            "tmp_contact_" + String.valueOf
(System.currentTimeMillis()) + ".jpg"));

        intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,
mImageCaptureUri);

        try {
            intent.putExtra("return-data", true);
            startActivityForResult(intent, PICK_FROM_CAMERA);
        } catch (ActivityNotFoundException e) {
            //Do nothing for now
        }
    }

    protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
        if (resultCode != RESULT_OK) {
            return;
        }

        switch (requestCode) {

        case CROP_FROM_CAMERA: {
            //Wysie_Soh: After a picture is taken, it will go to
PICK_FROM_CAMERA, which will then come here
            //after the image is cropped.

            final Bundle extras = data.getExtras();

            if (extras != null) {
                Bitmap photo = extras.getParcelable("data");

                mPhoto = photo;
                mPhotoChanged = true;
                mPhotoImageView.setImageBitmap(photo);
                setPhotoPresent(true);
            }

            //Wysie_Soh: Delete the temporary
file
            File f = new File(mImageCaptureUri.getPath());
            if (f.exists()) {
                f.delete();
            }

            InputMethodManager mgr = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
            mgr.showSoftInput(mPhotoImageView,
InputMethodManager.SHOW_IMPLICIT);

            break;
        }

        case PICK_FROM_CAMERA: {
            //Wysie_Soh: After an image is taken and saved to the
location of mImageCaptureUri, come here
            //and load the crop editor, with the necessary parameters
(96x96, 1:1 ratio)

            Intent intent = new Intent
("com.android.camera.action.CROP");
            intent.setClassName("com.android.camera",
"com.android.camera.CropImage");

            intent.setData(mImageCaptureUri);
            intent.putExtra("outputX", 96);
            intent.putExtra("outputY", 96);
            intent.putExtra("aspectX", 1);
            intent.putExtra("aspectY", 1);
            intent.putExtra("scale", true);
            intent.putExtra("return-data", true);
            startActivityForResult(intent, CROP_FROM_CAMERA);

            break;

        }
        }
    }

Hope it helps :)

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to