Notice
Recent Posts
Recent Comments
Link
투케이2K
385. (android/java) Intent 사용해 카메라 (camera) , 갤러리 (gallery) 호출 및 crop 사용해 이미지 자르기 수행 후 가져오기 본문
Android
385. (android/java) Intent 사용해 카메라 (camera) , 갤러리 (gallery) 호출 및 crop 사용해 이미지 자르기 수행 후 가져오기
투케이2K 2022. 11. 4. 11:17[개발 환경 설정]
개발 툴 : AndroidStudio
[호출 : 소스 코드]
three_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplication(), "THREE 수행", Toast.LENGTH_SHORT).show();
try {
// TODO [요약 설명]
/**
* ------------------------------------
* 1. 필요 권한 :
*
* <uses-permission android:name="android.permission.CAMERA"/>
* ------------------------------------
* 2. 테스트 참고 :
*
* 디바이스에서 기본으로 제공하는 [갤러리] 에서 사진을 선택해야합니다 (ex: 파일 관리자 등 다른 어플에서 수행하면 안됨)
* ------------------------------------
* */
// TODO [카메라 호출]
/*
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
// [이미지 잘라내기 위한 크기]
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 0);
intent.putExtra("aspectY", 0);
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 150);
try {
intent.putExtra("return-data", true);
startActivityForResult(intent, PICK_FROM_CAMERA);
} catch (Exception e) {
e.printStackTrace();
}
// */
// TODO [Gallery 호출]
Intent intent = new Intent();
intent.setType("image/*"); // [이미지 타입 지정]
intent.setAction(Intent.ACTION_GET_CONTENT);
// [잘라내기 셋팅]
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 0);
intent.putExtra("aspectY", 0);
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 150);
try {
intent.putExtra("return-data", true);
startActivityForResult(Intent.createChooser(intent,
"Complete action using"), PICK_FROM_GALLERY);
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
[응답 : 소스 코드]
// TODO [변수 선언 실시]
private static final int PICK_FROM_CAMERA = 1;
private static final int PICK_FROM_GALLERY = 2;
// TODO [인텐트 결과 응답 확인]
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// TODO [카메라 호출 결과]
if (requestCode == PICK_FROM_CAMERA) {
Log.d("---", "---");
Log.w("//===========//", "================================================");
Log.d("", "\n" + "[A_AA_Test_Java > onActivityResult() 메소드 : 카메라 호출 로직 처리]");
Log.w("//===========//", "================================================");
Log.d("---", "---");
Bundle extras = data.getExtras();
if (extras != null) {
Bitmap photo = extras.getParcelable("data");
imageView.setImageBitmap(photo); // [이미지 뷰에 표시]
}
}
// TODO [갤러리 호출 결과]
if (requestCode == PICK_FROM_GALLERY) {
Log.d("---", "---");
Log.w("//===========//", "================================================");
Log.d("", "\n" + "[A_AA_Test_Java > onActivityResult() 메소드 : 갤러리 호출 로직 처리]");
Log.w("//===========//", "================================================");
Log.d("---", "---");
Bundle extras2 = data.getExtras();
if (extras2 != null) {
Bitmap photo = extras2.getParcelable("data");
imageView.setImageBitmap(photo); // [이미지 뷰에 표시]
}
}
}
[결과 출력]
반응형
'Android' 카테고리의 다른 글
Comments