×

Welcome to TagMyCode

Please login or create account to add a snippet.
1
0
 
0
Language: Java
Posted by: Hafiz Waleed Hussain
Added: Jun 29, 2013 6:41 AM
Modified: Jul 4, 2013 2:41 AM
Views: 536
Tags: android
Get image from built-in camera. There are two type of images. One is low quality and the second is high quality and both are handle in this code.
If you want high quality image then add the below permission in your manifest.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  1. import java.io.File;
  2.  
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.graphics.Bitmap;
  6. import android.net.Uri;
  7. import android.os.Bundle;
  8. import android.os.Environment;
  9. import android.provider.MediaStore;
  10. import android.text.format.Time;
  11. import android.view.View;
  12. import android.widget.ImageView;
  13. import android.widget.Toast;
  14.  
  15. public class MainActivity extends Activity {
  16.  
  17.         private ImageView image = null;
  18.  
  19.         private Uri mHighQualityImageUri = null;
  20.  
  21.         private final int REQUEST_CODE_LOW_QUALITY_IMAGE = 1;
  22.         private final int REQUEST_CODE_HIGH_QUALITY_IMAGE = 2;
  23.  
  24.         @Override
  25.         protected void onCreate(Bundle savedInstanceState) {
  26.                 super.onCreate(savedInstanceState);
  27.                 setContentView(R.layout.activity_main);
  28.                 image = (ImageView) findViewById(R.id.image);
  29.         }
  30.  
  31.         // Button click listener
  32.         public void onSmallImageCapture(View v) {
  33.  
  34.                 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  35.                 startActivityForResult(intent, REQUEST_CODE_LOW_QUALITY_IMAGE);
  36.         }
  37.  
  38.         // Button click listener
  39.         public void onLargeImageCapture(View v) {
  40.  
  41.                 mHighQualityImageUri = generateTimeStampPhotoFileUri();
  42.                 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  43.                 intent.putExtra(MediaStore.EXTRA_OUTPUT, mHighQualityImageUri);
  44.                 startActivityForResult(intent, REQUEST_CODE_HIGH_QUALITY_IMAGE);
  45.  
  46.         }
  47.  
  48.         private Uri generateTimeStampPhotoFileUri() {
  49.  
  50.                 Uri photoFileUri = null;
  51.                 File outputDir = getPhotoDirectory();
  52.                 if (outputDir != null) {
  53.                         Time t = new Time();
  54.                         t.setToNow();
  55.                         File photoFile = new File(outputDir, System.currentTimeMillis()
  56.                                         + ".jpg");
  57.                         photoFileUri = Uri.fromFile(photoFile);
  58.                 }
  59.                 return photoFileUri;
  60.         }
  61.  
  62.         private File getPhotoDirectory() {
  63.                 File outputDir = null;
  64.                 String externalStorageStagte = Environment.getExternalStorageState();
  65.                 if (externalStorageStagte.equals(Environment.MEDIA_MOUNTED)) {
  66.                         File photoDir = Environment
  67.                                         .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
  68.                         outputDir = new File(photoDir, getString(R.string.app_name));
  69.                         if (!outputDir.exists())
  70.                                 if (!outputDir.mkdirs()) {
  71.                                         Toast.makeText(
  72.                                                         this,
  73.                                                         "Failed to create directory "
  74.                                                                         + outputDir.getAbsolutePath(),
  75.                                                         Toast.LENGTH_SHORT).show();
  76.                                         outputDir = null;
  77.                                 }
  78.                 }
  79.                 return outputDir;
  80.         }
  81.  
  82.         @Override
  83.         protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  84.                 super.onActivityResult(requestCode, resultCode, data);
  85.  
  86.                 if (resultCode == RESULT_OK) {
  87.  
  88.                         switch (requestCode) {
  89.                         case REQUEST_CODE_LOW_QUALITY_IMAGE:
  90.                                 Bitmap bmp = (Bitmap) data.getExtras().get("data");
  91.                                 image.setImageBitmap(bmp);
  92.  
  93.                                 break;
  94.  
  95.                         case REQUEST_CODE_HIGH_QUALITY_IMAGE:
  96.  
  97.                                 image.setImageURI(mHighQualityImageUri);
  98.                                 sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
  99.                                                 Uri.parse("file://"
  100.                                                                 + Environment.getExternalStorageDirectory())));
  101.                                 break;
  102.                         default:
  103.                                 break;
  104.                         }
  105.  
  106.                 }
  107.         }
  108. }
  109.  

1 comment

sunil singh 2 years ago
it s amazing A big Thanks

Write a comment