Versuchen Sie, Fresco DraweeView zu verwenden, um Galeriebilder zu laden, aber einige der Bilder laden nichtAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Versuchen Sie, Fresco DraweeView zu verwenden, um Galeriebilder zu laden, aber einige der Bilder laden nicht

Post by Anonymous »

Ich versuche einen benutzerdefinierten Galerie -Bildauswahler zu erstellen, mit dem Bilder aus der Galerie geladen werden müssen. Ich benutze Fresko anstelle von Glide, um es leichter als Gleit zu gleiten und versuche mein Bestes, um damit herumzuarbeiten. Aber beim Laden der Bilder werden sie manchmal nicht angezeigt, und manchmal kann es angezeigt werden, wenn ich den Bildhalter auf und ab scrolle und den Bildhalter aktualisiere. Das Problem sollte also nicht bei der URI sein, aber mit der Fresco -Drawee -Ansicht
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>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post