public class Capture1 extends Activity{


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.capture1); //적용할 레이아웃 설정

// final CameraSurfaceView cameraView = new CameraSurfaceView(getApplicationContext());
// FrameLayout frame = (FrameLayout) findViewById(R.id.frame); // 적용할 프레임
// frame.addView(cameraView); // add(프레임에 카레마 뷰 넣음)
//
final CameraSurfaceView cameraView = new CameraSurfaceView(this);
FrameLayout frame = (FrameLayout) findViewById(R.id.frame); // 적용할 프레임
frame.addView(cameraView); // add(프레임에 카레마 뷰 넣음)

//촬영 버튼 action 및 UI
Button still = (Button) findViewById(R.id.capture);// 버튼 설정.
still.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
cameraView.capture(new Camera.PictureCallback() {


public void onPictureTaken(byte[] data, Camera camera) {
FileOutputStream fos;
try{

Log.v("Still", "OK1");//Log console 사용대신으로 안드로이드에서 사용..
fos = openFileOutput("confirm.jpg", MODE_WORLD_READABLE);
Log.v("Still", "OK2");
//Bitmap bm = BitmapFactory.decodeByteArray(data, 0, data.length);

fos.write(data);
fos.close();
}catch(Exception e){
Log.e("Still", "Error");
}

}

});

}

});
//촬영 버튼 action 및 UI



//카메라 구동 API
private class CameraSurfaceView extends SurfaceView implements SurfaceHolder.Callback{
private SurfaceHolder mHolder;
private Camera camera = null;


public CameraSurfaceView(Context context){
super(context);
mHolder = getHolder();
mHolder.addCallback(this);

mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); // 객체를 얻어서 종류를 SURFACE_....BUFFERS로 설정 //OnCREATE 에서 호출 하기 적합
}
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height){//속성 설정후 StartPreview를 얻는다
//카메라 미리보기에 유용한 너비 높이 정보 전달 카메라에 비친 영상을 안드로이드 기기화면에서 볼수 있음.
Camera.Parameters params = camera.getParameters();
//params.set("orientation", "landscape");
//params.set("orientation", "portrait");
//params.setp
params.setPreviewSize(width, height);
//params.setRotation(180);
//params.setPictureSize(320, 240);
camera.setParameters(params);
camera.startPreview();
}
public void surfaceCreated(SurfaceHolder holder){ //카메라 인스턴스를 얻는다
//안드로이드 시스템이 사진 이미지를 표시할 준비를 메서드 실행하여 인스턴스를 마련
camera = Camera.open();
try {
camera.setPreviewDisplay(mHolder);
} catch (IOException e) {
// TODO Auto-generated catch block
camera.release(); //자원 반환으로 오류 해결.
camera = null;
e.printStackTrace();
}

}
public void surfaceDestroyed(SurfaceHolder holder){//카메라 객체를 해제 한다
camera.stopPreview();
camera = null;
}

public boolean capture(Camera.PictureCallback jpegHandler){ // 찍은 이미지를 저장을 위해 Callback 클래스 구현
//카메라가 보고있는 이미지를 촬영을 위해 takePicture메서드를 호출
if(camera != null){
camera.takePicture(null, null, jpegHandler); //takePicture 매게 변수를 설정해서 셔텨음등 촬영전 특정 작업 수행 가능

return true;
}
else{
return false;
}
}
}
//카메라 구동 API


}


===========================================================

이거 인데요...
사진 촬영하면 이미지가 해상도가 2560 x 1920-_-;;;
300X400정도면 되는데...
어케 줄여야 할까요... ㅠ_ㅠ;