Asegúrate de estar en la última versión
implementation 'com.github.bumptech.glide:glide:4.10.0'
Kotlin:
Glide.with(this)
.asBitmap()
.load(imagePath)
.into(object : CustomTarget<Bitmap>(){
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
imageView.setImageBitmap(resource)
}
override fun onLoadCleared(placeholder: Drawable?) {
// this is called when imageView is cleared on lifecycle call or for
// some other reason.
// if you are referencing the bitmap somewhere else too other than this imageView
// clear it here as you can no longer have the bitmap
}
})
Tamaño de mapa de bits:
si desea usar el tamaño original de la imagen, use el constructor predeterminado como se indicó anteriormente, de lo contrario, puede pasar el tamaño deseado para el mapa de bits
into(object : CustomTarget<Bitmap>(1980, 1080)
Java:
Glide.with(this)
.asBitmap()
.load(path)
.into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
imageView.setImageBitmap(resource);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
Vieja respuesta:
Con compile 'com.github.bumptech.glide:glide:4.8.0'
y debajo
Glide.with(this)
.asBitmap()
.load(path)
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
imageView.setImageBitmap(resource);
}
});
Para compile 'com.github.bumptech.glide:glide:3.7.0'
y debajo
Glide.with(this)
.load(path)
.asBitmap()
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
imageView.setImageBitmap(resource);
}
});
Ahora puedes ver una advertencia SimpleTarget is deprecated
Razón:
El punto principal de desaprobar SimpleTarget es advertirle sobre las formas en que lo tienta a romper el contrato de API de Glide. Específicamente, no hace nada para obligarlo a dejar de usar cualquier recurso que haya cargado una vez que se borre SimpleTarget, lo que puede provocar bloqueos y corrupción gráfica.
La imagen SimpleTarget
fija se puede usar siempre y cuando se asegure de que no está usando el mapa de bits una vez que se borre el imageView.
4.9.0
.asBitmap()
debe colocarse despuéswith(this)
si no está resuelto.No estoy lo suficientemente familiarizado con Glide, pero parece que si conoce el tamaño objetivo, puede usar algo como esto:
Parece que puede pasar
-1,-1
y obtener una imagen a tamaño completo (puramente basada en pruebas, no puedo verla documentada).Note
into(int,int)
devuelve aFutureTarget<Bitmap>
, por lo que debe envolver esto en una cubierta de bloque try-catchExecutionException
yInterruptedException
. Aquí hay un ejemplo de implementación más completo, probado y funcionando:Siguiendo la sugerencia de Monkeyless en el comentario a continuación (y esta parece ser también la forma oficial ), puede usar un
SimpleTarget
, opcionalmente,override(int,int)
para simplificar el código considerablemente. Sin embargo, en este caso se debe proporcionar el tamaño exacto (no se acepta nada por debajo de 1):como sugirió @hennry si necesitabas la misma imagen, usa
new SimpleTarget<Bitmap>()
fuente
Target.SIZE_ORIGINAL
por el ancho y la altura del mapa de bits en lugar de -1SimpleTarget
esto:new SimpleTarget<Bitmap>(){....}
Parece que anular la
Target
clase o una de las implementacionesBitmapImageViewTarget
y anular elsetResource
método para capturar el mapa de bits podría ser el camino a seguir ...Esto no ha sido probado. :-)
fuente
ACTUALIZAR
Ahora necesitamos usar
Custom Targets
CÓDIGO DE MUESTRA
Las respuestas anteriores son correctas pero desactualizadas
porque en la nueva versión de Glide
implementation 'com.github.bumptech.glide:glide:4.8.0'
Encontrará el siguiente error en el código
.asBitmap()
no está disponible englide:4.8.0
es obsoletoSimpleTarget<Bitmap>
Aquí hay solución
fuente
Esto es lo que funcionó para mí: https://github.com/bumptech/glide/wiki/Custom-targets#overriding-default-behavior
fuente
Si desea asignar una imagen de mapa de bits dinámica a variables de mapa de bits
Ejemplo para
kotlin
Las respuestas anteriores no me funcionaron
.asBitmap
debe ser antes de la.load("http://....")
fuente
ACTUALIZACIÓN PARA NUEVA VERSIÓN
ANTIGUA RESPUESTA
La respuesta de @ outlyer es correcta, pero hay algunos cambios en la nueva versión de Glide
Mi versión: 4.7.1
Código:
Nota: este código se ejecuta en UI Thread, por lo tanto, puede usar AsyncTask, Executor o algo más para la concurrencia (como el código de @ outlyer) Si desea obtener el tamaño original, coloque Target.SIZE_ORIGINA como mi código. No uses -1, -1
fuente
Versión más nueva:
fuente