für Debugging -Zwecke habe ich auch versucht, einen ControllerListener hinzuzufügen, aber wie es scheint, wird die OnFailure -Funktion nicht aufgerufen. seltsam. < /p>
Dies ist der Code, den ich verwende: < /p>
Code: Select all
override fun bind(data: Media) {
binding.run {
media = data
isSelected = selectedUriList.contains(data.uri)
if (isSelected) {
selectedNumber = selectedUriList.indexOf(data.uri) + 1
}
showZoom = builder.showZoomIndicator && media is Media.Image
showDuration = builder.showVideoDuration && media is Media.Video
if (data is Media.Video) {
binding.duration = data.durationText
}
binding.ivImage.hierarchy = GenericDraweeHierarchyBuilder(binding.ivImage.resources)
.setPlaceholderImage(R.color.loading_placeholder)
.setFailureImage(R.color.red)
.build()
val imageRequest = ImageRequestBuilder.newBuilderWithSource(Uri.parse(data.uri.toString()))
.setResizeOptions(ResizeOptions(100,100))
.setProgressiveRenderingEnabled(true)
.disableMemoryCache()
.build()
val controller = Fresco.newDraweeControllerBuilder()
.setOldController(ivImage.controller)
.setImageRequest(imageRequest)
.setAutoPlayAnimations(true)
.setControllerListener(object: BaseControllerListener() {
override fun onFailure(id: String?, throwable: Throwable?) {
Log.e("FrescoError", "Image failed to load: ${throwable?.message}")
}
})
.build()
ivImage.controller = controller
}
}
< /code>