Select Image From Sdcard /Take Pic From Camera in Android

Select Image From Sdcard  /Take Pic From Camera in Android
http://blog.cluepusher.dk/2009/10/28/writing-parcelable-classes-for-android/


private void selectImage() {
   final CharSequence[] items = { "Take Photo", "Choose from gallery",
           "Cancel" };

   AlertDialog.Builder builder = new AlertDialog.Builder(Settings.this);
   builder.setTitle("Add Photo!");

   builder.setItems(items, new DialogInterface.OnClickListener() {
       @Override
       public void onClick(DialogInterface dialog, int item) {
           if (items[item].equals("Take Photo")) {
               Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
               File f = new File(android.os.Environment.getExternalStorageDirectory(), "temp.jpg");
               intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
               startActivityForResult(intent, REQUEST_CAMERA);
           }

           else if (items[item].equals("Choose from gallery")) {
               Intent intent = new Intent(Intent.ACTION_GET_CONTENT, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
               intent.setType("image/*");
               startActivityForResult(Intent.createChooser(intent, "Select File"), SELECT_FILE);
           }

           else if (items[item].equals("Cancel")) {
               dialog.dismiss();
           }
       }
   });
   builder.show();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   super.onActivityResult(requestCode, resultCode, data);
   System.out.println("asdas dasd asd asd asd ");
   if (resultCode == RESULT_OK) {
       if (requestCode == REQUEST_CAMERA) {
           /*File f = new File(Environment.getExternalStorageDirectory().toString());
           for (File temp : f.listFiles()) {
               if (temp.getName().equals("temp.jpg")) {
                   f = temp;
                   break;
               }
           }
           try {
               Bitmap bm;
               BitmapFactory.Options btmapOptions = new BitmapFactory.Options();

               bm = BitmapFactory.decodeFile(f.getAbsolutePath(),btmapOptions);

               // bm = Bitmap.createScaledBitmap(bm, 70, 70, true);
             //  btnImg.setImageBitmap(bm);
             //  btnImg.setScaleType(ScaleType.CENTER_INSIDE);

               String path = android.os.Environment.getExternalStorageDirectory() + File.separator + "Phoenix" + File.separator + "default";
               f.delete();
               OutputStream fOut = null;
               File file = new File(path, String.valueOf(System.currentTimeMillis()) + ".jpg");
               try {
                   fOut = new FileOutputStream(file);
                   bm.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
                   fOut.flush();
                   fOut.close();
               } catch (FileNotFoundException e) {
                   e.printStackTrace();
               } catch (IOException e) {
                   e.printStackTrace();
               } catch (Exception e) {
                   e.printStackTrace();
               }
           } catch (Exception e) {
               e.printStackTrace();
           }
       } else if (requestCode == SELECT_FILE) {
           Uri selectedImageUri = data.getData();

           String tempPath = getPath(selectedImageUri, Settings.this);
           Bitmap bm;
           BitmapFactory.Options btmapOptions = new BitmapFactory.Options();
           bm = BitmapFactory.decodeFile(tempPath, btmapOptions);
          // btnImg.setImageBitmap(bm);
         //  btnImg.setScaleType(ScaleType.CENTER_INSIDE);
*/        }
   }
}

public String getPath(Uri uri, Activity activity) {
   String[] projection = { MediaColumns.DATA };
   Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
   int column_index = cursor.getColumnIndexOrThrow(MediaColumns.DATA);
   cursor.moveToFirst();
   return cursor.getString(column_index);
}