public class ShopActivity extends Activity {
 //int width=0, height=0;
 static int REQUEST_PICTURE = 1; // 사진 촬영 시 Request
 static int REQUEST_PHOTO_ALBUM = 2; // 포토 앨범을 가지고 올 경우 Request
 static String SAMPLEIMG = "photo.png"; // 임시 파일 명
 Bitmap bitmap;
 /** Called when the activity is first created. */
 Context mContext = this;// 편의상 Context를 작성
 ImageView iv; // imageView 를 전역 변수로 작성

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  iv = (ImageView) findViewById(R.id.imgView);
  
  
 }

 // button 클릭
 Dialog dialog;

 public void onClickImg(View v) {
  switch (v.getId()) {
  case R.id.getCustom: // 메인 화면의 버튼 클릭 시
   AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
   View customLayout = View.inflate(mContext, R.layout.custom_button,
     null);
   builder.setView(customLayout);
   dialog = builder.create();
   dialog.show();
   break;
  case R.id.camera: // 카메라 버튼 클릭 시
   dialog.dismiss();// AlertDialog 창 닫기
   takePicture(); // 사진 촬영 함수 호출
   break;
  case R.id.photoAlbum:
   dialog.dismiss();
   photoAlbum();
   break;
  case R.id.save:
   dialog.dismiss();
   save();
   break;
  case R.id.red:
   dialog.dismiss();
   red();
   break;

  }
 }

 // 사진 촬영
 void takePicture() {
  // 카메라 호출 intent 생성
  Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  // Sample 이미지를 설정
  File file = new File(Environment.getExternalStorageDirectory(),
    SAMPLEIMG);
  // intent로 사진 파일 명 전송
  intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
  startActivityForResult(intent, REQUEST_PICTURE);
 }

 // 사진 불러오기
 void photoAlbum() {
  // photo Album 호출 intent 생성
  Intent intent = new Intent(Intent.ACTION_PICK);
  intent.setType(Images.Media.CONTENT_TYPE);
  intent.setData(Images.Media.EXTERNAL_CONTENT_URI);
  startActivityForResult(intent, REQUEST_PHOTO_ALBUM);

 }

 void save() {
  Context mContext = getApplicationContext();
  LayoutInflater inflater = (LayoutInflater) mContext
    .getSystemService(LAYOUT_INFLATER_SERVICE);
  View layout = inflater.inflate(R.layout.main,
    (ViewGroup) findViewById(R.id.photoAlbum));

  AlertDialog.Builder aDialog = new AlertDialog.Builder(this);
  // aDialog.setTitle("이미지를 저장하시겠습니까?");
  // aDialog.setView(layout);

  aDialog.setPositiveButton("저장하기", new DialogInterface.OnClickListener() {

   public void onClick(DialogInterface dialog, int which) {
    ImageView imgv = (ImageView) findViewById(R.id.imgView);
    Drawable tempImg = imgv.getDrawable();
    Bitmap tmpBitmap = ((BitmapDrawable) tempImg).getBitmap();
    // EditText txt=(EditText)findViewById(R.id.edtxt);

    MediaStore.Images.Media.insertImage(getContentResolver(),
      tmpBitmap, "test", null);

    Context context = getApplicationContext();
    CharSequence text = "저장완료";

    int duration = Toast.LENGTH_SHORT;

    Toast toast = Toast.makeText(context, text, duration);

    toast.setGravity(Gravity.CENTER, 0, 0);
    toast.show();
    
   }
  });
  aDialog.setNegativeButton("취소하기", new DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialog, int which) {
   }
  });
  AlertDialog ad = aDialog.create();
  ad.show();

 }

 void red(){
  int frameSize = bitmap.getWidth() * bitmap.getHeight();
  int[] rgba = new int[frameSize];
  int data[] = new int[frameSize];
  
  for (int i = 0; i < frameSize; i++) {
   int y = (0xff & ((int) data[i]));
   rgba[i] = 0xff000000 + (y << 16) + (y << 8) + y;
  }
  
}

Bitmap loadPicture() {
  File file = new File(Environment.getExternalStorageDirectory(),
    SAMPLEIMG);
  BitmapFactory.Options option = new BitmapFactory.Options();
  option.inSampleSize = 4;
  return BitmapFactory.decodeFile(file.getAbsolutePath(), option);
  
 }

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  // TODO Auto-generated method stub
  super.onActivityResult(requestCode, resultCode, data);
  if (resultCode != RESULT_OK)
   return;
  // 결과값이 사진 촬영 이면 loadPicture 호출
  if (requestCode == REQUEST_PICTURE) {
   iv.setImageBitmap(loadPicture());
  }
  // 결과 값이 포토앨범이면 getData() 호출
  if (requestCode == REQUEST_PHOTO_ALBUM) {
   iv.setImageURI(data.getData());
  }
 }
}

어떤 방식으로 접근 해야 하는지좀 알려주실수 있나요 ㅠㅠ