일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 막내의막무가내 코틀린 안드로이드
- 막내의막무가내 플러터
- 안드로이드
- 막내의막무가내
- 막내의막무가내 목표 및 회고
- 막내의 막무가내
- 막내의막무가내 코틀린
- 막내의막무가내 코볼 COBOL
- 막내의막무가내 일상
- 안드로이드 Sunflower 스터디
- flutter network call
- 막내의막무가내 rxjava
- 주엽역 생활맥주
- 안드로이드 sunflower
- 부스트코스
- 막내의막무가내 안드로이드 코틀린
- Fragment
- 주택가 잠실새내
- 막무가내
- 부스트코스에이스
- 막내의 막무가내 알고리즘
- 막내의막무가내 안드로이드
- 프로그래머스 알고리즘
- 막내의막무가내 프로그래밍
- 막내의막무가내 플러터 flutter
- 막내의막무가내 알고리즘
- 막내의막무가내 SQL
- 프래그먼트
- 막내의막무가내 안드로이드 에러 해결
- 2022년 6월 일상
- Today
- Total
막내의 막무가내 프로그래밍 & 일상
[안드로이드] Glide 라이브러리 간단한 사용방법 + 비트맵으로받기 본문
이번에 이미지가 있는 URL을 파싱해와서 이 URL을 어떻게 이미지로 받아서 사용할 수 있을까 하다가 Glidle 라이브러리를 써서 이미지가 있는 URL을 이미지로 변환하여 사용할 수 있었다.
Glide말고도 스퀘어사에서 만든 Picasso 라이브러리도 찾았지만 좀 더 대중적으로 사용하는 Glide를 사용하게 되었다. 둘이 비교하면 용량이적고 빠른건 Glide이고 용량과 상대적으로 조금더 느리지만 화질이 좋은건 Picasso라고한다. 잘 비교해서 더 필요한걸 사용하면 좋을 것 같다.
https://github.com/bumptech/glide
Glide 레포지토리고 구글에서 개발했다고 한다.
Glide 사용방법에 대해 간단하게 정리해보았다.
먼저 Glide를 사용하기위해 Gradle module에 추가해준다.
implementation 'com.github.bumptech.glide:glide:3.7.0'
Glide를 기본적인 사용방법은 다음과 같다.
Glide.with(this).load(imageUrl).into(imageView); //Glide을 이용해서 이미지뷰에 url에 있는 이미지를 세팅해줌
1. imageUrl=> String형으로 이미지가 있는 주소를(url)담고있다.
ex) http://movie.phinf.naver.net/20171107_251/1510033896133nWqxG_JPEG/movie_image.jpg
2. imageView => 말 그대로 xml의 이미지뷰이다.
이렇게 한줄이면 해당 url의 이미지를 뷰에 담아줄 수가 있었다. (url 뿐만 아니라 다른 형태의 타입도 glide로 띄워줄 수 있다.)
이전에 다른 예제에서 이미지의 URL을 이미지로 불러올려면 꽤 코드를 길게 쓰고 복잡했었는데 Glide 라이브러리를 이용해 이렇게 한줄이면 되니 매우 편리했었다.
이렇게 단순 이미지만 불러오는거 외에도 다른 함수들도 존재하는데 다음과 같다.
- override()
: 지정한 이미지의 크기만큼만 불러올수 있습니다. 이를 통해 이미지 로딩 속도를 최적화 할수있습니다.
- placeholder()
: 이미지를 로딩하는동안 처음에 보여줄 placeholder이미지를 지정할 수 있습니다.
- error()
이미지로딩에 실패했을경우 실패 이미지를 지정할 수 있습니다.
- thumbnail()
: 지정한 %비율 만큼 미리 이미지를 가져와서 보여줍니다.
0.1f로 지정했다면 실제 이미지 크기중 10%만 먼저 가져와서 흐릿하게 보여줍니다.
- asGif()
: 정적인 이미지 뿐만 아니라 GIF도 로딩할수 있습니다.
이밖에 centerCrop(), fitCenter , 사이즈조절( .override(x,y) ), 동그랗게 출력 등의 기능이 있는데 그것은 구글링하면 금방 나오니 찾아보면된다.
출처: https://gun0912.tistory.com/17 [박상권의 삽질블로그]
thumbnail()과 placeholder()를 사용한 예시이다. placeholder에 들어간 스피너는 로딩gif이다.
Glide.with(context).load(model.getSendImage()).thumbnail(0.1f).placeholder(R.drawable.loading_spinner).into(holder3.sendImageVIew2);
마지막으로 Glide에서 url로 받아오는경우 비트맵으로 변환시키고 싶을때가 있다.
그럴때는 다음과 같은 코드를 실행하면 된다. (비동기이다.) 원래는 asBitmap()으로 가능했던거 같은데 버전업이 된 이후로 안되는 것 같다. 그래거 이와 같은 방법으로 비트맵을 받았다.
Glide.with(this)
.asBitmap().load(mPhotoList.get(0))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.listener(new RequestListener<Bitmap>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object o, Target<Bitmap> target, boolean b) {
return false;
}
@Override
public boolean onResourceReady(Bitmap bitmap, Object o, Target<Bitmap> target, DataSource dataSource, boolean b) {
Log.d(TAG, "비트맵변환한거0 => " + bitmap);
mPhoto0ImageView.setImageBitmap(bitmap);
mPhotoBitmapList.add(bitmap);
return false;
}
}
).submit();
* 이미지의 위치(URL)을 이미지로 변환해 사용해야할 때 Glide 라이브러리를 애용하도록하자. 또한 캐싱까지해줘서 다시불러올때 더 빠르게 불러올 수 있다
댓글과 공감은 큰 힘이됩니다!
참고: https://github.com/bumptech/glide
https://gun0912.tistory.com/17
'안드로이드 > 자바 & Previous' 카테고리의 다른 글
[안드로이드] ArrayList , 사용자가 만든 객체 부가 데이터 전달 예제 (0) | 2019.03.23 |
---|---|
[안드로이드] Bundle 간단 사용 예제 및 방법 ( 액티비티 프래그먼트 데이터전달 ) (1) | 2019.03.22 |
[안드로이드] 기억노트 필기 - 리싸이클러뷰 정리 (0) | 2019.03.21 |
[안드로이드] 프래그먼트 뒤로가기 했을때 처리 (9) | 2019.03.20 |
[안드로이드] Volley 라이브러리 사용법 (2) | 2019.03.09 |