안드로이드 개발 질문/답변
(글 수 40,700)
서페이스뷰 카메라 셔터 콜백할때 (사진위에 이미지 올려서 촬영하려다가 캡쳐방식으로 구현중입니다 .
서페이스뷰 (mView)에 보이는 화면을 이미지뷰(vCapture) 안으로 옮기는과정에서 사이지는 맞게 구현되나
찍는 부분이 약간 상위쪽 화면으로 보입니다.
//셔터 컬백 호출부분이구요
Camera.PictureCallback mPicutureListener = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
// TODO Auto-generated method stub
BitmapFactory.Options options =
new BitmapFactory.Options();
options.inSampleSize= 2;
Bitmap bitmap =BitmapFactory.decodeByteArray(data, 0, data.length);
Matrix matrix = new Matrix();
matrix.equals(vCapture);
Bitmap rotateBitmap = Bitmap.createBitmap(bitmap,0,0,vCapture.getWidth(),
vCapture.getHeight(),matrix,true);
mView.setVisibility(View.GONE);
vCapture.setVisibility(View.VISIBLE);
vCapture.setImageBitmap(rotateBitmap);
vCapture.setScaleType(ImageView.ScaleType.FIT_XY);
}
};
// 서페이스 체인지 부분입니다.
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
Camera.Parameters params = camera.getParameters();
List<Size> arSize = params.getSupportedPreviewSizes();
if (arSize == null) {
params.setPreviewSize(width, height);
} else {
int diff = 10000;
Size opti = null;
for (Size s : arSize) {
if (Math.abs(s.height - height) < diff) {
diff = Math.abs(s.height - height);
opti = s;
}
}
params.setPreviewSize(opti.width, opti.height);
}
camera.setParameters(params);
camera.startPreview();
}
}
}
아마 이두군대에서 만지면될꺼같아서 재 부분 올려봅니다 고수님들 잘부탁드려요