호출 시스템 카메라

시스템 의 사진 과 촬영 기능 을 어떻게 가 져 오 는 지 몰 랐 다가 인터넷 코드 를 조회 해 작성 해 코드 를 정리 했다.
 사진 과 촬영 기능 은 모두 Intent 의 setAction 방법 을 통 해 각각 MediaStore. ACTION 을 호출 할 수 있다.IMAGE_CAPTURE 와 MediaStore. ACTIONVIDEO_CAPTURE。
 xml 에 세 개의 단 추 를 놓 고 하 나 는 사진 을 찍 고 하 나 는 촬영 하고 하 나 는 저장 하 며 하 나 는 ImageView 입 니 다. 먼저 사진 을 어떻게 호출 하 는 지 말씀 해 주세요.OnClick () 에 다음 코드 를 쓰 십시오.
 
            intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
			intent.addCategory("android.intent.category.DEFAULT");
			startActivityForResult(intent, 0);

  그리고 저 는 onActivity Result () 에서 이미지 imageview 의 디 스 플레이 를 미리 보 거나 다른 작업 을 해도 됩 니 다.
 
if (resultCode == RESULT_OK) {
			if (requestCode == 0) {
				Bundle extras = data.getExtras();
				bitmap = (Bitmap) extras.get("data");
				image.setImageBitmap(bitmap);
			}
		} else {
			Toast.makeText(this, "      ", Toast.LENGTH_SHORT).show()
			return;
		}

마지막 으로 저장 하고 저장 하기 전에 사진 의 이름 을 지정 한 폴 더 에 저장 해 야 합 니 다.
시간 에 따라 이름 을 짓 면 이름 이 중복 되 지 않 음 을 보증 할 수 있 습 니 다.
private static String createFileName() {
		SimpleDateFormat dateFormat = new SimpleDateFormat(
				"yyyy-MM-dd-HH:mm:ss");
		Date date = new Date(System.currentTimeMillis());
		String fileName = dateFormat.format(date) + ".jpg";
		return fileName;
	}

지정 한 폴 더 로 저장:
	//path = "/sdcard/1130photos"
	public static void savePhotoToSdcard(String path, String photoName,
			Bitmap bitmap) {
		if (Environment.getExternalStorageState().equals(
				Environment.MEDIA_MOUNTED)) {
			File file = new File(path);
			if (!file.exists()) {
				file.mkdirs();
			}
			File photoFile = new File(file, photoName);
			FileOutputStream fos = null;
			try {
			fos = new FileOutputStream(photoFile);
			if (bitmap != null) {
			compress = bitmap.compress(Bitmap.CompressFormat.JPEG, 100,
							fos);
					if (compress) {
						fos.flush();
						fos.close();
					}
				}
			} catch (FileNotFoundException e) {
				photoFile.delete();
				e.printStackTrace();
			} catch (IOException e) {
				photoFile.delete();
				e.printStackTrace();
			} finally {
				if (fos != null) {
					try {
						fos.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
			}
		}
	}

마지막 저장:
 
			if (bitmap == null) {
		    Toast.makeText(this, "    ", Toast.LENGTH_SHORT).show();
			} else {
		    savePhotoToSdcard(path, MainActivity.createFileName(), bitmap);
			Toast.makeText(this, "    ", Toast.LENGTH_SHORT).show();
				image.setImageResource(R.drawable.ic_launcher);
				bitmap = null;
			}

촬영 기능 도 마찬가지다.
파일 이름:
       private static String createVideoFileName() {
		SimpleDateFormat dateFormat = new SimpleDateFormat(
				"yyyy-MM-dd-HH:mm:ss");
		Date date = new Date(System.currentTimeMillis());
		String fileName = dateFormat.format(date) + ".3gp";
		return fileName;
	}

촬영 후 바로 저장
            //path_video = "/sdcard/1130video"
            intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
			File video_file = new File(path_video,
					MainActivity.createVideoFileName());
			if (video_file.exists()) {
				video_file.delete();
			}
			Uri video_uri = Uri.fromFile(video_file);
			intent.putExtra(MediaStore.EXTRA_OUTPUT, video_uri);
			startActivity(intent);

시스템 카메라 디 렉 터 리 에 직접 저장 할 수도 있 습 니 다.

좋은 웹페이지 즐겨찾기