안드로이드 바인딩 어댑터로 Glide 사용하기 예제
요즘에 함수형프로그래밍이 대세이다.
그래서 회사에서 프로젝트를 할 때 최대한 리액티브하게 코드를 구현하도록 노력 중이다.
오늘은 제일 흔하게 사용되는 Glide로 이미지를 리액티브하게 보여주는 코드를 예제로 보여주려고 한다.
데이터바인 세팅하는 과정은 생략하겠다.
안드로이드 데이터바인딩 공식문서에 자세히 나와있으니 참고하길 바란다.
@BindingAdapter("imageUrl")
fun setImageUrl(imageView: ImageView, url:String?) {
url?.let {
Glide.with(imageView.context).load(url).into(imageView)
}
}
주의할 점은 setImageUrl 함수가 전역함수여야한다.
클래스 안에 들어가면 안된다는 뜻이다.
"imageUrl" 은 xml에서 사용할 속성이다.
setImageUrl 첫번째 매개변수는 내가 사용할 View의 타입을 변수로 넘겨준다.
두번째 매개변수로 url을 넘겨준다.
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
imageUrl="@{selectedItem.heatImgPath}"
android:onClick="@{() -> fragment.showImageDialog(selectedItem.heatImgPath)}"
/>
내가 선언한 바인딩어댑터를 사용할 ImageView에 imageUrl 속성을 적어주면 된다.
댓글 없음:
댓글 쓰기