마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Camera Save가 안됩니다...포커스 넣는 위치도 좀 알려주세요.

0 추천
import java.io.FileOutputStream;
import java.util.Calendar;

import android.app.Activity;
import android.content.Intent;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class CameraMain extends Activity implements SurfaceHolder.Callback,
		Camera.PictureCallback, OnClickListener {
	SurfaceView sv;
	Button bt;

	SurfaceHolder holder;

	Camera camera;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.cameramain);

		sv = (SurfaceView) findViewById(R.id.surfaceView);
		bt = (Button) findViewById(R.id.chiz);

		bt.setOnClickListener(this);

		holder = sv.getHolder();
		holder.addCallback(this);
		holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
	}

	@Override
	public void onClick(View v) {
		if (v.getId() == R.id.chiz) {
			camera.takePicture(null, null, this);
		}
	}

	@Override
	public void surfaceChanged(SurfaceHolder holder, int format, int width,
			int height) {
		// TODO Auto-generated method stub

		camera.startPreview();

	}

	@Override
	public void surfaceCreated(SurfaceHolder holder) {
		try {
			camera = Camera.open();
			camera.setPreviewDisplay(holder);

			Parameters param = camera.getParameters();
			param.setRotation(90);

			param.setFlashMode(Parameters.FLASH_MODE_AUTO);
			param.setFocusMode(Parameters.FOCUS_MODE_AUTO);
			param.setColorEffect(Parameters.EFFECT_AQUA);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	@Override
	public void surfaceDestroyed(SurfaceHolder holder) {

		camera.stopPreview();
		camera.release();
		camera = null;

	}

	@Override
	public void onPictureTaken(byte[] data, Camera camera) {

		String sdcard_path = Environment.getExternalStorageDirectory()
				.getAbsolutePath();

		String photo_dir = sdcard_path + "/DCIN/mytest/";
		

		FileOutputStream fos = null;
		try {
			Calendar cal = Calendar.getInstance();

			int yy, mm, dd, hh, mi, ss;
			yy = cal.get(Calendar.YEAR);
			Log.d("년도", "" + yy);
			mm = cal.get(Calendar.MONTH)+1;
			Log.d("월", "" + mm);
			dd = cal.get(Calendar.DAY_OF_MONTH);
			Log.d("일", "" + dd);
			hh = cal.get(Calendar.HOUR);
			Log.d("시", "" + hh);
			mi = cal.get(Calendar.MINUTE);
			Log.d("분", "" + mi);
			ss = cal.get(Calendar.SECOND);
			Log.d("초", "" + ss);
			String now = String.format("%04d%02d%02d-%02d%02d%02d", yy, mm, dd);
			Log.d("현재", "" + now);

			fos = new FileOutputStream(photo_dir + now + ".jpg");
			Log.d("확장자", "" + fos);
			fos.write(data);
			fos.close();
			fos = null;

			Intent photo_intent = new Intent(
					Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"
							+ photo_dir + now + ".jpg"));
			sendBroadcast(photo_intent);
		} catch (Exception e) {
			if (fos != null) {
				try {
					fos.close();
				} catch (Exception e1) {

				}
				fos = null;
			}
		}

		camera.startPreview();

		Intent intent = new Intent();
	}
}

카메라에 화면을 터치를 했을 때 터치한곳에 포커스를 맞게 하고 싶은 데...힘드내요...ㄷㄷ

익명사용자 님이 2013년 7월 24일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...