Media Store Camera Intent
package app.test; import java.io.FileNotFoundException; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import android.provider.MediaStore.Images.Media; import android.content.ContentValues; public class Test extends Activity { final static int CAMERA_RESULT = 0; Uri imageFileUri; ImageView returnedImageView; Button takePictureButton; Button saveDataButton; TextView titleTextView; TextView descriptionTextView; EditText titleEditText; EditText descriptionEditText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); returnedImageView = (ImageView) findViewById(R.id.ReturnedImageView); takePictureButton = (Button) findViewById(R.id.TakePictureButton); saveDataButton = (Button) findViewById(R.id.SaveDataButton); titleTextView = (TextView) findViewById(R.id.TitleTextView); descriptionTextView = (TextView) findViewById(R.id.DescriptionTextView); titleEditText = (EditText) findViewById(R.id.TitleEditText); descriptionEditText = (EditText) findViewById(R.id.DescriptionEditText); returnedImageView.setVisibility(View.GONE); saveDataButton.setVisibility(View.GONE); titleTextView.setVisibility(View.GONE); descriptionTextView.setVisibility(View.GONE); titleEditText.setVisibility(View.GONE); descriptionEditText.setVisibility(View.GONE); takePictureButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { imageFileUri = getContentResolver().insert( Media.EXTERNAL_CONTENT_URI, new ContentValues()); Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri); startActivityForResult(i, CAMERA_RESULT); } }); saveDataButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { ContentValues contentValues = new ContentValues(3); contentValues.put(Media.DISPLAY_NAME, titleEditText.getText().toString()); contentValues.put(Media.DESCRIPTION, descriptionEditText.getText().toString()); getContentResolver().update(imageFileUri, contentValues, null,null); Toast bread = Toast.makeText(Test.this,"Record Updated", Toast.LENGTH_SHORT); bread.show(); takePictureButton.setVisibility(View.VISIBLE); returnedImageView.setVisibility(View.GONE); saveDataButton.setVisibility(View.GONE); titleTextView.setVisibility(View.GONE); descriptionTextView.setVisibility(View.GONE); titleEditText.setVisibility(View.GONE); descriptionEditText.setVisibility(View.GONE); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); if (resultCode == RESULT_OK) { takePictureButton.setVisibility(View.GONE); saveDataButton.setVisibility(View.VISIBLE); returnedImageView.setVisibility(View.VISIBLE); titleTextView.setVisibility(View.VISIBLE); descriptionTextView.setVisibility(View.VISIBLE); titleEditText.setVisibility(View.VISIBLE); descriptionEditText.setVisibility(View.VISIBLE); int dw = 200; // Make it at most 200 pixels wide int dh = 200; // Make it at most 200 pixels tall try { BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options(); bmpFactoryOptions.inJustDecodeBounds = true; Bitmap bmp = BitmapFactory.decodeStream(getContentResolver().openInputStream( imageFileUri), null, bmpFactoryOptions); int heightRatio = (int) Math.ceil(bmpFactoryOptions.outHeight/ (float) dh); int widthRatio = (int) Math.ceil(bmpFactoryOptions.outWidth/ (float) dw); if (heightRatio > 1 && widthRatio > 1) { if (heightRatio > widthRatio) { bmpFactoryOptions.inSampleSize = heightRatio; } else { bmpFactoryOptions.inSampleSize = widthRatio; } } bmpFactoryOptions.inJustDecodeBounds = false; bmp = BitmapFactory.decodeStream(getContentResolver().openInputStream( imageFileUri), null, bmpFactoryOptions); returnedImageView.setImageBitmap(bmp); } catch (FileNotFoundException e) { Log.v("ERROR", e.toString()); } } } } //layout/main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/ReturnedImageView" android:layout_width="wrap_content" android:layout_height="wrap_content"> </ImageView> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Title:" android:id="@+id/TitleTextView"> </TextView> <EditText android:layout_height="wrap_content" android:id="@+id/TitleEditText" android:layout_width="fill_parent"> </EditText> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Description" android:id="@+id/DescriptionTextView"> </TextView> <EditText android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/DescriptionEditText"> </EditText> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/TakePictureButton" android:text="Take Picture"> </Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/SaveDataButton" android:text="Save Data"> </Button> </LinearLayout>