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());
}
}
}

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