package kyu.project.mycloth;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;

public class ImageLoader extends Activity {
    public static final String EXTRAS_KEY = "type";
    public static final String EXTRAS_CAMERA = "camera";
    public static final String EXTRAS_ALBUM = "album";
 
    public static final int PICK_FROM_CAMERA = 0;
    public static final int PICK_FROM_ALBUM = 1;
    
    Bitmap bitmap;
    String path;
 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        String type = getIntent().getStringExtra(EXTRAS_KEY);
 
        if (type.equals(EXTRAS_CAMERA)) {
            Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
            startActivityForResult(intent, PICK_FROM_CAMERA);
        } else if (type.equals(EXTRAS_ALBUM)) {
            Intent intent = new Intent(Intent.ACTION_PICK);
            intent.setType(android.provider.MediaStore.Images.Media.CONTENT_TYPE);
            startActivityForResult(intent, PICK_FROM_ALBUM);
        }
    }
         
    private static final String[] IMAGE_PROJECTION = {
            MediaStore.Images.ImageColumns.DATA,
            MediaStore.Images.Thumbnails.DATA };
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == Activity.RESULT_OK) {
            switch (requestCode) {
            case PICK_FROM_CAMERA:
                final Uri uriImages = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
                // final Uri uriImagesthum = MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI;
                final Cursor cursorImages = getContentResolver().query (
                        uriImages, IMAGE_PROJECTION, null, null, null);
                 
                if (cursorImages != null && cursorImages.moveToLast()) {
                    String imageUrl = cursorImages.getString(0);
                    cursorImages.close();
 
                    bitmap = (Bitmap)data.getExtras().get("data");
                    path = data.getStringExtra("imageUrl");
                   
                    data.putExtra("imageUrl", imageUrl);
                    setResult(resultCode, data);
                    
                    
                }
 
                break;
            case PICK_FROM_ALBUM:
                Cursor cursor = getContentResolver().query(data.getData(),
                        null, null, null, null);
                if (cursor.moveToNext()) {
                    String imageUrl = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DATA));
                     
                    bitmap = (Bitmap)data.getExtras().get("data");
                    path = data.getStringExtra("imageUrl");
                    
                    data.putExtra("data", BitmapFactory.decodeFile(imageUrl));
                    data.putExtra("imageUrl", imageUrl);
                    setResult(resultCode , data);
                }
                break;
            }
        }
        finish();
    }
     
    public static void doTakeAlbumAction(Activity activity) {
        Intent intent = new Intent(activity , ImageLoader.class);
        intent.putExtra(ImageLoader.EXTRAS_KEY, ImageLoader.EXTRAS_ALBUM);
        activity.startActivityForResult(intent, ImageLoader.PICK_FROM_ALBUM);
    }
     
    public static void doTakePhotoAction(Activity activity) {
        Intent intent = new Intent(activity , ImageLoader.class);
        intent.putExtra(ImageLoader.EXTRAS_KEY, ImageLoader.EXTRAS_CAMERA);
        activity.startActivityForResult(intent, ImageLoader.PICK_FROM_CAMERA);
    }
}

카메라 이미지 호출 소스인데요. 인터넷 검색중 찾은 정보입니다. 하지만 사용을 어떻게 해야할지 모르겠네요.

하고싶은 작업은 원페이지에서

case R.id.camerabtn:
ImageLoader.doTakePhotoAction(this);
break;
case R.id.albumbtn:
ImageLoader.doTakeAlbumAction(this);
break;

이렇게 호출 해서 이미지를 사진찍은 것이나 앨범에서 선택한 사진으로 바꾸고 

이미지의 경로를 가져와야 합니다.(데이터베이스 경로저장용)

멘탈이 붕괴되네요 충고좀해주세요.