1. gradle 추가
build.gradle
dependencies {
...
implementation 'com.github.bumptech.glide:glide:4.12.0' // 이미지로딩 라이브러리
}
Glide 적용
object CommonBindingAdapters{
@BindingAdapter("app:imageUrl","app:placeholder")
@JvmStatic fun loadImage(imageView: ImageView, url: String, placeholder: Drawable){
Glide.with(imageView.context)
.load(url)
.placeholder(placeholder)
.error(placeholder)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.apply(RequestOptions().fitCenter())
.into(imageView)
}
}
.load(url) : 불러올 이미지
.placeholder(defaultImage) : 이미지 로딩 시작하기 전 표시할 이미지
.error(defaultImage) : 로딩 에러 발생 시 표시할 이미지
.fallback(defaultImage) : 로드할 url 이 비어있을(null 등) 경우 표시할 이미지
.circleCrop() : 동그랗게 자르기
.into(imageView) : 이미지를 넣을 뷰
.diskCacheStrategy() : 불러온 이미지를 디스크 캐시에 저장할지 여부를 지정
xml
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
>
<data>
<variable
name="item"
type="com.danggai.app.bindingAdapterSample.item.SampleItem"
/>
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_image2"
android:scaleType="fitXY"
app:imageUrl="@{item.img_url}"
app:placeholder="@{@drawable/icon_placeholder}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
</android.support.constraint.ConstraintLayout>
</layout>
'기술적용' 카테고리의 다른 글
RecyclerView - item 위치 찾기 (0) | 2022.08.06 |
---|---|
Recyclerview, Databinding 연동 (0) | 2022.05.24 |
Jetpack Navigation, Bottom navigation 연동 (0) | 2022.05.14 |
Jetpack Navigation 이동 (Fragment -> Fragment) (0) | 2022.05.09 |
Navigation safe args 구현 (0) | 2022.05.07 |