Mega Code Archive

 
Categories / Android / 2D Graphics
 

Capture Image

//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">   <Button     android:id="@+id/capture"     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="Take a Picture"   />   <ImageView     android:id="@+id/image"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:scaleType="centerInside"   /> </LinearLayout> package app.test; import java.io.File; import java.io.FileInputStream; 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.os.Environment; import android.provider.MediaStore; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; public class MyActivity extends Activity {          private static final int REQUEST_IMAGE = 100;          Button captureButton;     ImageView imageView;     File destination;          @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);                  captureButton = (Button)findViewById(R.id.capture);         captureButton.setOnClickListener(listener);                  imageView = (ImageView)findViewById(R.id.image);                  destination = new File(Environment.getExternalStorageDirectory(),"image.jpg");     }          @Override     protected void onActivityResult(int requestCode, int resultCode, Intent data) {         if(requestCode == REQUEST_IMAGE && resultCode == Activity.RESULT_OK) {             //Bitmap userImage = (Bitmap)data.getExtras().get("data");             try {                 FileInputStream in = new FileInputStream(destination);                 BitmapFactory.Options options = new BitmapFactory.Options();                 options.inSampleSize = 10; //Downsample 10x                 Bitmap userImage = BitmapFactory.decodeStream(in, null, options);                 imageView.setImageBitmap(userImage);             } catch (Exception e) {                 e.printStackTrace();             }                      }     }          private View.OnClickListener listener = new View.OnClickListener() {         @Override         public void onClick(View v) {             Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);             //Add extra to save full-image somewhere             intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(destination));             Toast.makeText(MyActivity.this, Uri.fromFile(destination).toString(), Toast.LENGTH_SHORT).show();             startActivityForResult(intent, REQUEST_IMAGE);         }     }; }