안드로이드 폰에서 기본으로 제공하는 기본 카메라 및 갤러리
불러보기 및 이미지 Bitmap 처리
Button btnCamera = (Button)FindViewById(R.id.btnCamera)
Button btnGallery = (Button)FindViewById(R.id.btnGallery)
카메라와 갤러리를 실행 할 버튼을 만든다!
위에 XML과 연결을 해준다~
카메라의 사진을 저장하기 위해선 저장할 경로가 필요하다.
cameraTempFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/tmp_image.jpg";
File imageFile = new File(cameraTempFilePath);
Uri imageFileUri = Uri.fromFile(imageFile);
저장할 파일 경로를 설정한다! (실질적으로 저장할 위치에 폴더가 존재하지 않으면 에러가 발생한다.
물론 임시파일사진도 저장되지 않는다.)
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);
startActivityForResult(intent, REQ_CAMERA_SELECT);
인텐트를 생성한다
어디로 가야할지 정해주고 위에서 설정했던 이미지저장할 파일경로를 적어 줍니다.
자 여기서 갤러리 불러오는 방법도!
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, REQ_GALLERY_SELECT);
스타트 엑티비티로 실행이 된 후 그 결과값을 처리해야한다.
그부분은 어디서 하는지 이제부터 시작한다 두둥!!
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK){
if(requestCode == REQ_CAMERA_SELECT{
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
// (1,2,4,8 이렇게 지정함으로 원본사진의 반,1/4 로 옵션을 설정)
Bitmap mImageBitmap = BitmapFactory.decodeFile(cameraTempFilePath, options);
// 비트맵에 값을 가져와서 사용한다
/* Tiny Image Returned : 섬네일 파일 읽기
mBackBitmap = (Bitmap) data.getExtras().get("data");
ourImageView.setImageBitmap(mBackBitmap);
*/
// To do 필요한 처리
}
if(requestCode == REQ_GALLERY_SELECT{
// 데이타를 받아와서
Uri currImageURI = data.getData();
Bitmap mImageBitmap = BitmapFactory.decodeStream(
getContentResolver().openInputStream(currImageURI), null, options);
//To do 필요한 처리
}
}
위에서 비트맵으로 이미지 데이타를 불러온 부분은 필요에 위해서 처리하면 된다.
중요한걸 빼먹을뻔 했네요~!
안드로이드 메니페스트 파일에서 카메라 사용 권한을 주셔야 합니다.
'Tech develop > Android' 카테고리의 다른 글
[안드로이드/android]인터넷 연결 여부 확인 (0) | 2014.08.10 |
---|---|
[Android/안드로이드]Button RepeatListener (버튼 눌림 반복) (0) | 2014.08.10 |
[Android/안드로이드]java.lang.NullPointerException 에러 (0) | 2014.08.10 |
[Android/안드로이드] .9.png(9patch) 사용 법 (0) | 2014.08.10 |
[Android/안드로이드]ExpandableListView 그룹 닫기 메소드 (0) | 2014.08.10 |