민프
[Android] 프로필 사진을 만들어보자!!(카메라, 앨범, 사진CROP) 본문
일단 프로필 사진 CROP에 필요한 라이브러리를 찾아보았는데
https://ourcodeworld.com/articles/read/930/top-10-best-android-image-cropping-crop-widget-libraries
https://github.com/ArthurHub/Android-Image-Cropper
이 라이브러리를 사용해서 진행하였다.
진행 순서는
1. Manifest에 해당 라이브러리에 대한 내용 추가
2. Graddle에 해당 라이브러리에 대한 내용 추가
3. 해당 라이브러리의 실행을 위한 JAVA 코드 넣기
4. 선택한 사진의 Result값이 잘 들어오는지 LOG로 확인
5. 선택한 사진이 프로필 사진ImagaView에 잘 적용이 되는지 확인
그럼 이 진행순서로 진행해보겠슴다~
1. menifest에 해당 라이브러리에 대한 내용 추가
<activity
android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
android:theme="@style/Base.Theme.AppCompat" />
2. Graddle에 해당 라이브러리에 대한 내용 추가
implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.+'//이미지 크롭
3. 해당 라이브러리의 실행을 위한 JAVA 코드 넣기
//프로필 이미지 관련
ImageView acti_edit_myprofile_user_img = findViewById(R.id.acti_edit_myprofile_user_img);
requestPermission();
//권한 부여 받기
private void requestPermission(){
PermissionListener permissionListener = new PermissionListener() {
@Override
public void onPermissionGranted() {
onSelectImageClick(acti_edit_myprofile_user_img);
}
@Override
public void onPermissionDenied(List<String> deniedPermissions) {
}
};
TedPermission.with(this)
.setPermissionListener(permissionListener)
.setRationaleMessage("사진을 추가하기 위해서는 권한 설정이 필요합니다.")
.setDeniedMessage("[설정] > [권한] 에서 권한을 허용할 수 있습니다..")
.setPermissions(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.CAMERA
,Manifest.permission.WRITE_EXTERNAL_STORAGE)
.check();
}//requestPermission()
/** Start pick image activity with chooser. */
public void onSelectImageClick(View view) {
CropImage.activity(null).setGuidelines(CropImageView.Guidelines.ON).start(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
Log.d(TAG+ " onActivityResult", String.valueOf(result));
//크롭 성공시
if (resultCode == RESULT_OK) {
acti_edit_myprofile_user_img = findViewById(R.id.acti_edit_myprofile_user_img);
acti_edit_myprofile_user_img.setImageURI(result.getUri());
//실패시
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
}
}
}
4. 선택한 사진의 Result값이 잘 들어오는지 LOG로 확인
D/activity_edit_myProfile onActivityResult: com.theartofdev.edmodo.cropper.CropImage$ActivityResult@c9ef640
5. 선택한 사진이 프로필 사진ImagaView에 잘 적용이 되는지 확인
잘 적용 되는 것을 확인할 수 있다~~~
다음 포스팅에서는
해당하는 프로필 사진을
Bimap -> String으로 해서 DB에 저장해봐야겠다~
'[Android]' 카테고리의 다른 글
[Android] Intent로 Email을 보내보자!!(Email 관련 앱들만 나오게 하기) (0) | 2021.07.07 |
---|---|
[Android] FCM Push 기능 구현해보자!! (0) | 2021.07.06 |
[Android] StaticLayout을 이용해서 Canvas에 텍스트를 MulitLine으로 만들어보자!! (0) | 2021.07.02 |
[Android] 여러 페이지의 PDF를 만들어보자!! (0) | 2021.07.02 |
[Android] 여러 페이지의 PDF 로 만들어보자(PdfDocument, Paint, Canvas, 레이아웃 캡쳐) (0) | 2021.07.02 |
Comments