728x90
휴대폰 내 사진첩에서 사진을 가져와서
Glide 을 적용하여 사진 형태를 원 형태로 보여주려고 한다.
1.
종속성 설정
dependencies {
implementation 'com.github.bumptech.glide:glide:4.11.0'
// Skip this if you don't want to use integration libraries or configure Glide.
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
}
2.
권한 설정
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
3.
<java 코드>
로컬 사진첩으로 넘어간다.
private int GALLEY_CODE = 10;
/...
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(MediaStore.Images.Media.CONTENT_TYPE);
startActivityForResult(intent,GALLEY_CODE);
4.
절대 경로 구하기
android에서 api로 사진의 절대경로를 구할 수 없기 때문에 손코딩을 해야된다.
//절대경로를 구한다.
private String getRealPathFromUri(Uri uri)
{
String[] proj= {MediaStore.Images.Media.DATA};
CursorLoader cursorLoader = new CursorLoader(this,uri,proj,null,null,null);
Cursor cursor = cursorLoader.loadInBackground();
int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String url = cursor.getString(columnIndex);
cursor.close();
return url;
}
5.
사진 고른 후 돌아오는 코드
로컬 파일에서 업로드
ivProfile = (ImageView)findViewById(R.id.iv_profile);
private String imageUrl="";
private ImageView ivProfile;
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if(requestCode == GALLEY_CODE)
{
imageUrl = getRealPathFromUri(data.getData());
RequestOptions cropOptions = new RequestOptions();
Glide.with(getApplicationContext())
.load(imageUrl)
.apply(cropOptions.optionalCircleCrop())
.into(ivProfile);
}
super.onActivityResult(requestCode, resultCode, data);
}
.load(url) --> 사진의 절대 경로
.apply(cropOptions.optionalCircleCrop()) --> 원형태
.into(ivProfile); --> imageView 에 출력
'Front-end > Android (안드로이드 앱 개발)' 카테고리의 다른 글
Android Studio , Firebase 파이어베이스 : 실시간 데이터베이스 게시물 삭제 + 스토리지 삭제 (0) | 2021.01.13 |
---|---|
Android Studio , Firebase 파이어베이스 : 실시간 데이터베이스 데이터 읽고 쓰기 (like. 인별그램) (3) | 2021.01.12 |
Android Studio , Firebase 파이어베이스 Storage 저장 (1) | 2021.01.04 |
Android studio , Firebase 파이어베이스 Google Login 구글 로그인 (0) | 2021.01.01 |
Android Studio , Firebase 파이어베이스 android 초기 설정 (0) | 2020.12.28 |
댓글