리사이클 러 어댑터에서 네트워크 URL을 검색하여 그림의 URL을 검색합니다. URL을받은 후, 유니버설 이미지 로더를 사용하여 그림을 이미지보기로로드합니다. 문제는 내가 그림을 올바른 위치에 놓았지만 화면을 스크롤하면 화면이 잘못된 곳에서 부 풀리게됩니다.리사이틀 뷰에서 올바른 위치로 사진로드
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
if (holder is ViewHolder) {
val article = feeds[position]
holder.articleTitle.setFont("SourceSansPro-SemiBold.ttf")
holder.articleDescription.setFont("OpenSans-Regular.ttf")
holder.articleTime.setFont("OpenSans-Light.ttf")
mAnimator?.onBindViewHolder(holder.itemView, position)
holder.apply {
article.apply {
articleTitle.text = title
articleDescription.text = Html.fromHtml(description)
articleTime.text = TimeUtils.convertLongToTime(pubDate)
if (image.isBlank()){
//load picture url when it's empty
mContext?.doAsync {
ImageExtractor.extractImageUrl(link, object : OnImageExtractorListener {
override fun onSuccess(url: String) {
v("imaaaage success $title $url")
mContext?.runOnUiThread {
article.image = url
//use uil to load the image didn't work so I tried just updating the model
//articleImage.displayImage(url)
feeds[position] = article
notifyItemChanged(position)
}
val dbo = context.getDatabase()
dbo.updateArticleImage(dbo,url,article.id)
}
override fun onError() {
}
})
}
}else{
articleImage.displayImage(image)
isRead?.let {
if (isRead!! && !isSaved){
grayScale(holder)
}
}
}
container.setOnClickListener {
itemClick(this)
if (!isSaved){
article.isRead = true
feeds[position] = article
notifyItemChanged(position)
}
}
}
}
}else if (holder is LoadingViewHolder){
holder.progressBar.isIndeterminate = true
}
}
나는 사용자가 스크롤하거나하지 않을 경우 권리 곳에서 이미지를로드하는 방법이 필요합니다 : 여기 내 어댑터입니다.
글라이드, 프레스코 등의 이미지 로더 라이브러리를 사용하고 뷰어 홀더 –
과 중복되는 이미지 URL을 유지하십시오. https://stackoverflow.com/questions/26525999/recyclerview-async-image-loading – Anthea
@ ArbazRizvi 다른 라이브러리를 시도해 보겠지 만 현재 [UIL] (https://github.com/nostra13/Android-Universal-Image-Loader)를 사용 중입니다 –