Glide란?
- 구글에서 공개한 이미지 라이브러리
- 가장 성능이 좋은 이미지 로딩 라이브러리로 알려져 있다.
- 기본적으로 사진 로딩과 동영상, gif 파일 로딩까지 지원한다.
안드로이드 스튜디오를 통해 개발을 하다보면 로컬 갤러리나 서버 통신을 통해 url을 받아 이미지로 보여줘야 할 것이다.
이미지 url을 이미지로 변환시켜 주는 라이브러리 중 하나가 Glide이다.
Glide는 이미지 로딩 프레임워크이다. Glide는 이미지, 영상 썸네일, GIFs를 가지오거나, 디코딩, 보여줄 수 있다. 빠르고 유능하다는 점 덕분에 많은 개발자들에게 인기 있는 이미지 로딩 프레임워크이다.
초기 설정
Gradle 의존성 추가
implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
Glide를 사용하기 위해서 Gradle 파일에 위의 의존성을 추가해준다.
통신을 통해서 이미지 url을 받아와야 한다면, AndroidManifest.xml에 인터넷 사용권한을 추가해준다.
<uses-permission android:name="android.permission.INTERNET" />
사용법
먼저 사진을 띄워줄 ImageView를 xml파일에 만들어준다.
<ImageView
android:id="@+id/iv_test"
android:layout_width="200dp"
android:layout_height="300dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
기본적인 사용 방법은 매우 간단하다.
예시 코드를 보자.
import com.bumptech.glide.Glide
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Glide.with(this)
.load("https://media.vlpt.us/images/sasy0113/post/f7085683-1a62-4ce7-9f7f-e8fd2f3ec825/Android%20Kotlin.jpg")
.into(findViewById(R.id.iv_test))
}
}
with() 메서드는 Context, Activity, Fragment, View를 파라미터로 받고
load()는 Bitmap, Drawable, String, Uri, File 등의 이미지 정보를 가지고 있는 객체를 파라미터로 받고
마지막 into()는 이미지를 넣을 ImageView를 파라미터로 받아준다.
정리하면 with은 Context 객체를 가져와주고 load는 이미지를, into는 그 이미지를 ImageView에 넣어주는 역할을 한다.
그 외 기능
load()가 반환한 RequestBuilder에는 이미지 처리에 대한 다양한 기능이 있다.
- placeholder(): 이미지가 로딩 중일 때 보여줄 이미지를 넣을 수 있다.
- error(): 에러가 났을 때 이미지를 보여줄 수 있다.
- fallback(): 이미지가 null일 때, 보여줄 이미지를 넣을 수 있다.
참고
'안드로이드 > 정리(Android)' 카테고리의 다른 글
Android - binding 사용하기 (0) | 2022.02.24 |
---|---|
(Android) 카카오톡 프로필 앱 만들기 (0) | 2022.02.14 |
(Android) RecyclerView의 성능 개선 정리 (0) | 2022.01.26 |
(Android) Handler란 무엇일까? (0) | 2022.01.13 |
(코틀린 kotlin) LayoutInflater란 무엇일까 (0) | 2022.01.11 |