ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android]Glide 라이브러리를 통해 이미지 Load하기
    안드로이드 2022. 2. 11. 12:37
    728x90
    반응형

    안드로이드 개발을 할 때 이미지를 띄우고자 할때, 여러 방법이 있습니다. 

    1. 안드로이드 프로젝트의 drawable폴더의 리소스를 보여주는 경우

    2. 안드로이드 디바이스 안에 저장되어있는 사진(갤러리 등)을 보여주는 경우

    3. 이미지 URL을 로드해서 보여주고자 하는 경우

    Glide란‼️

    Glide는 위와 같은 3가지 방법들을 안드로이드에서 이미지를 빠르고 효율적으로 불러올 수 있게 도와주는 라이브러리입니다. 이미지, GIF,비디오 스틸의 로딩과 디코딩, 캐싱 등의 다양한 API를 사용할 수 있습니다. 기본적으로 커스텀하게 만들어진 HttpUrlConnection 기반이지만, Volley나 okHttp 라이브러리를 사용할 수 있는 플러그인도 지원합니다.

     

    반응형

    Glide 사용 방법

    1. build.gradle(Module:app)에서 의존성 추가

    작성일 기준 최신 버전입니다. 최신 버전은 Glide GitHub에서 확인 가능합니다.

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

    2. 이미지 로드하기

    특별한 옵션없이 단순히 이미지만 로드할 경우라면 with(),load(),into()로 로드할 수 있습니다.

    Glide.with(View의 Context)
        .load(로드할 이미지)
        .into(ImageView)

    각 함수의 기능👀

    • with() : View,Fragment 혹은 Activity로부터 Context를 가져오는 함수.
    • load(): 이미지를 로드하는 함수. 다양한 방법으로 이미지를 로드할 수 있다.(Bitmap,Drawable,Uri,String,File,ResourceId,ByteArray)
    • into(): 이미지를 보여줄 View를 지정하는 함수.

    3. 에러처리, 후가공

    Glide는 이미지 로드를 도와주는게 아니라, 에러상황에 대한 대처, 후가공이 필요할 경우 손쉽게 처리할 수 있는 함수를 제공합니다.

    Glide.with(this)
        .load(R.drawable.glide_example)
        .placeholder(R.drawable.glide_example_place_holder)
        .error(R.drawable.glide_example_error)
        .fallback(R.drawable.glide_example_null)
        .into(imageView)

    각 함수의 기능👀

    • placeholder() : Glide로 이미지 로딩을 시작하기 전에 보여줄 이미지를 선정하는 함수.
    • error() : 리소스를 불러오다가 에러 발생 시 보여줄 이미지 설정하는 함수.
    • fallback() : load할 url이 null인 경우 보여줄 이미지를 설정하는 함수.

    4. 메모리, 디스크 캐싱

    Glide는 기본적으로 이미지의 URL을 이용해 메모리와 디스크에 캐싱하여 추후에 불러올 시 빠른 이미지 로딩을 지원합니다.

    Glide.with(this)
        .load(R.drawable.glide_example)
        .skipMemoryCache(true)
        .diskCacheStrategy(DiskCacheStrategy.NONE)
        .into(imageView)

    각 함수의 기능👀

    • skipMemoryCache() : 메모리에 캐싱하지 않으려면 true, 메모리에 캐싱하려면 false
    • diskCacheStrategy() : 디스크에 캐싱을 수행하기 위한 함수.
      •  DiskCacheStrategy.NONE : 디스크 캐싱을 하지 않는다.
      •  DiskCacheStrategy.SOURCE : 원본 이미지만 캐싱
      •  DiskCacheStrategy.RESULT : 변형된 이미지만 캐싱
      •  DiskCacheStrategy.ALL : 모든 이미지를 캐싱(기본값)

    5. GIF 로딩

    Glide는 GIF이미지도 로딩할 수 있습니다.

    Glide.with(this)
        .load(R.drawable.glide_example)
        .asGif()
        .into(imageView)
    • asGif() : GIF이미지 로딩을 위한 함수

    6. 썸네일 이미지

    원본 이미지를 썸네일로 사용할 수 도 있습니다.

    Glide.with(this)
         .load(R.drawable.gilde_example)
         .thumbnail(0.1f)
         .into(imageView)
    • thumnail() : 원본 이미지의 크기의 배수값을 줌으로써 썸네일의 크기를 지정할 수 있습니다.
    출처👍🏻
    https://github.com/bumptech/glide
    https://blog.yena.io/studynote/2020/06/10/Android-Glide.html
    728x90
    반응형

    댓글

Designed by ZibroTistory.