[Android] Glide 사용하기

Krrong·2022년 5월 11일
0

Android

목록 보기
7/14
post-thumbnail
post-custom-banner

📌 Intro

이전에 정리한 이미지 받아오는 방법은 속도가 굉장히 느려 RecyclerView에 띄워줄 떄 버벅이는 현상을 보였다. 이 문제를 해결하기 위해 다른 방법을 찾아보았고 Glide에 대해 알게 되었다. 같이 알아보도록 하자.

이번에 정리할 내용은 라이브러리를 이용하여 이미지를 가져오는 방법이다. 널리 사용되고 있는 라이브러리는 Picasso/Glide/Fresco 총 3개이며, 내가 알아볼 것은 Glide다.

  • Glide : 제일 많이 쓰이는 보편적인 것, 자료가 많음
  • Picasso : 옛날에 많이 사용되었던 것, Picasso와 Glide는 문법과 기능이 거의 비슷하다.
  • Fresco : 페이스북이 개발한 이미지 라이브러리로, 사용법이 조금 어렵고 코드가 많아진다. 하지만 그만큼 섬세한 컨트롤이 가능하고, GIF를 많이 보여주려면 필수다.



📌 Glide?

Glide는 구글에서 만든 이미지 로더 라이브러리다. Glide의 with()는 Picasso와는 다르게 Context뿐 아니라 Activity와 Fragment도 인자로 사용할 수 있다.

Glide는 Picasso보다 메모리 용량을 적게 차지한다. 그 이유는 이미지를 다운로드 할 때 작은 이미지 사이즈로 변환해주기 때문이다. 그래서 원본 이미지를 그대로 가져와야 한다면 Picasso를, 그렇지 않다면 Glide를 사용하는 것이 좋다.



📌 Glide 사용하기

1. build.gradle에 Glide 라이브러리 추가하기

Glide를 사용하기 위해 가장 먼저 해야 하는 것은 gradle에 Glide라이브러리를 추가하는 것이다.
build.gradle(Project...)에는 repositories를,
build.gradle(Module...app)에는 dependencies를 각각 추가해주도록 하자.

참고에 있는 깃허브에 들어가 최신 버전에 맞게 dependencies를 추가해주자. (현재 게시글을 작성하는 시점에서의 최신 버전은 4.13이다.)

repositories {
  google()
  mavenCentral()
}

dependencies {
  implementation 'com.github.bumptech.glide:glide:4.13.0'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.13.0'
}

2. 권한 추가하기

이전에 정리한 내용과 비슷하다. URL을 사용하기 때문에 Manifest.xml파일에 Internet 사용 권한을 추가해줘야 한다.
해당 내용은 여기를 클릭하여 참고하도록 하자.

3. Glide 사용하기

public class MainActivity extends AppCompatActivity {
 
    private ImageView imageView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView= findViewById(R.id.imageView);
 
        // Glide로 이미지 표시하기
        String url= "링크";
        Glide.with(this).load(url).into(imageView);
    }
}

간단한 예제 코드를 작성하였다. 현재 레이아웃에는 ImageView 하나만 있는 상태이다.
사용할 수 있는 메서드에 대해 간략히 정리하면 다음과 같다.

  • with()
    View, Fragment 혹은 Activity로부터 Context를 가져온다.

  • load()
    이미지를 보여줄 View를 지정한다.

  • placeholder()
    Glide로 이미지 로딩을 시작하기전에 보여줄 이미지를 설정한다.

  • error()
    리소스를 불러오다가 에러가 발생했을 경우 보여줄 이미지를 설정한다.

  • fallback()
    load할 URL이 null인 경우 등 비어있을 때 보여줄 이미지를 설정한다.



📌 참고

[1] https://github.com/bumptech/glide (Glide 버전 확인)
[2] https://jizard.tistory.com/179 (Glide의 기본 사용법)
[3] https://blog.naver.com/getinthere/221636149736 (Glide.with(context))의 context 알맞게 넣는 방법
[4] https://blog.yena.io/studynote/2020/06/10/Android-Glide.html (다양한 메서드 정리)
[5] http://dktfrmaster.blogspot.com/2016/09/glide.html (더 많은 Glide 메서드 사용방법)
[6] https://github.com/krrong/Glide (예제 코드)

post-custom-banner

0개의 댓글