Android에서 이미지를위한 카메라 또는 갤러리 선택
나는 카메라 또는 갤러리 이미지 선택 에서 열심히 일 했으며이 작업을 위해 유틸리티 클래스를 만들었습니다. 이 클래스 '이미지 카메라 또는 갤러리를 선택하는 것은 너무 쉽습니다'를 사용
하면 개발에 5-10 분이 걸렸습니다.
1 단계 : 코드에 이러한 클래스를 추가하십시오.
ImagePickerUtils : - http://www.codesend.com/view/f8f7c637716bf1c693d1490635ed49b3/
BitmapUtils : -
http://www.codesend.com/view/81c1c2a3f39f1f7e627f01f67be282cf/
ConvertUriToFilePath : -
http://www.codesend.com/view/f4668a29860235dd1b66eb419c5a58b5/
MediaUtils : - https://codeshare.io/5vKEMl
이 권한을 menifest에 추가해야합니다.
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
이 클래스 함수 (checkAndRequestPermissions) 는 Android-Marshmallow 및 Android-Nougat 의 권한 을 자동으로 확인합니다 .
2 단계. 카메라 의도를 시작하기위한 카메라 클래스 호출 :
//Create a global veriable .
private Uri mCameraUri;
private static final int CAMERA_REQUEST_CODE = 100;
// Call this function when you wants to select or capture an Image.
mCameraUri = ImagePickerUtils.createTakePictureIntent(this, CAMERA_REQUEST_CODE);
3 단계 : 의도에서 데이터를 수신하기 위해 활동에 onActivityResult 추가
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
Uri fileUri = ImagePickerUtils.getFileUriOfImage(this, data, mCameraUri);
try {
Bitmap bitmap = null;
if (CAMERA_REQUEST_CODE == requestCode) {
bitmap = new BitmapUtils().getDownsampledBitmap(this, fileUri, imageView.getWidth(), imageView.getHeight());
}
if (bitmap != null)
imageView.setImageBitmap(bitmap);
} catch (Exception e) {
e.printStackTrace();
}
}
}
도움이 되길 바랍니다.이 수업을 개선하기위한 제안이 있으시면 의견을 달아주세요.