개발/ANDROID 안드로이드 / / 2022. 8. 31. 18:10

[Library] Glide 자주 사용하는 안드로이드 이미지 라이브러리

반응형

 

# 안드로이드 이미지 라이브러리

Glide는 Picasso와 함께 안드로이드 이미지 로딩 라이브러리에서 많이 사용되는 라이브러리입니다.

이미지, GIF, 캐싱, 커스텀 등 다양한 기능일 지원합니다.

Picasso.with(context).load("이미지 URL").into(imageView);
Glide.with(context).load("이미지 URL").into(imageView);
  Picasso Glide
기능 갯수 지원하는 기능이 Glide 보다 적다. 지원하는 기능이 Picasso보다 많다.
캐싱 방법 이미지의 사이즈 변환 없이 저장한다. 이미지의 사이즈를 줄여 저장한다.
메모리 사용량 원본 이미지 저장으로 상대적으로 많은 메모리 사용 저장된 이미지 사이즈가 상대적으로 작아 적은 메모리 사용
로딩 시간
사이즈를 변환하지 않아 비교적 빠름 사이즈 변환으로 비교적 느림
캐시 이미지 로딩 느림 캐시 이미지 로딩 빠름
이미지 품질 Glide에 비해 비트 수가 높아 고품질 이미지 표현 Picasso에 비해 비트 수가 낮아 이미지 품질 떨어짐
GIF 지원 GIF 지원 안함 GIF 지원

 

 

오늘은 그중 Glide의 사용방법을 알아보겠습니다.

https://github.com/bumptech/glide

 

GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling

An image loading and caching library for Android focused on smooth scrolling - GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling

github.com

 

 

# 인터넷 사용 설정

안드로이드 프로젝트에 인터넷 권한을 허용하지 않았다면 AndroidManifest.xml에 인터넷 권한을 추가합니다.

<uses-permission android:name="android.permission.INTERNET" />

 

1. 기본 Glide 사용 방법

- 먼저 안드로이드 프로젝트 build.gradle (Module)에 Glide를 추가합니다.

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

 

- 특별한 옵션 없이 기본 설정으로 이미지를 로드하기 위해서는 with(), load(), into()만 사용하면 됩니다.

        // Activity, Fragment로부터 Context를 가져온다.
Glide.with(this)
        // 로드할 이미지를 선택
        .load(R.drawable.image)
        // 이미즈를 보여줄 View
        .into(imageView);

 

# 이미지 로딩 전후 처리 옵션

Glide.with(this)
	.load(R.drawable.image)
    
    	// 이미지 로딩이 완료되기 전에 보여줄 이미지
    	.placeholder(R.drawable.image)
    	// 이미지 로딩 실패시 보여줄 이미지
    	.error(R.drawable.image)
    	// 이미지가 비어있을경우 보여줄 이미지
    	.fallback(R.drawable.image)
    
    	.into(imageView);

 

# 더 많은 옵션

        // Activity, Fragment로부터 Context를 가져온다.
Glide.with(this)
        // 로드할 이미지를 선택
        .load(R.drawable.image)     

        // 이미지 로딩이 완료되기 전에 보여줄 이미지
        .placeholder(R.drawable.image)
        // 이미지 로딩 실패시 보여줄 이미지
        .error(R.drawable.image)
        // 이미지가 비어있을경우 보여줄 이미지
        .fallback(R.drawable.image)

        // 이미지 비율을 유지한 상태로 스케일. ImageView를 벗어나는 부분은 잘라냄.
        .centerCrop()
        // 이미지 비율을 유지한 상태로 스케일. ImageView를 벗어나지 않음.
        .centerInside()
        // 비율을 유지한 채, ImageView의 크기에 맞게 이미지의 크기를 조절
        .fitCenter()
        // Glide 4.x에 추가된 이미지를 원형으로 표시
        .circleCrop()

        // 이미지 로드 우선 순위
        .priority(Priority.IMMEDIATE)
        .priority(Priority.HIGH)
        .priority(Priority.NORMAL)
        .priority(Priority.LOW)

        .into(imageView);

 

# 섬네일 

기존에 사용하던 .thumbnail(0.1f) 방법의 경우 Deprecated 되었습니다. 

다음과 같은 방법을 권장해드립니다.

RequestBuilder<Drawable> thumBuilder = Glide.with(this)
        .asDrawable().sizeMultiplier(0.1f);

// 리소스 ID
int resourceId = R.drawable.gif;
Glide.with(this)
        .load(resourceId)
        .thumbnail(thumBuilder)
        .into(imageView);

 

# 이미지 캐싱

Glide는 기본적으로 메모리 & 디스크에 이미지를 캐싱하여 불필요한 네트워크 연결을 줄입니다.

처음 메모리 캐싱을 한 후에, skipMemoryCache(true)로 캐싱을 중지하더라도, 그전에 저장된 캐시는 그대로 남아있습니다.

 

# 디스크 캐싱

디스크 캐싱은 메모리 캐시와 비슷한 기능으로 Glide는 기본적으로 디스크 캐싱을 수행합니다.

Glide.with(this)
        .load(R.drawable.image)

        // 메모리 캐싱 사용 안 함
        .skipMemoryCache(true)

        // 디스크 캐싱을 사용 안 함
        .diskCacheStrategy(DiskCacheStrategy.NONE)
        // 그외 옵션들
        .diskCacheStrategy(DiskCacheStrategy.ALL)
        .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
        .diskCacheStrategy(DiskCacheStrategy.DATA)
        .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)

        .into(imageView);

 

 

# GIF 이미지 로딩하는 방법

 

[Library] Glide GIF 이미지 로딩하기

# Glide 이미지 로딩 라이브러리 사용 방법 https://overpay.tistory.com/4 [Library] Glide 자주 사용하는 안드로이드 이미지 라이브러리 # 안드로이드 이미지 라이브러리 Glide는 Picasso와 함께 안드로이드 이..

overpay.tistory.com

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유