No estoy lo suficientemente familiarizado con Glide, pero parece que si conoce el tamaño objetivo, puede usar algo como esto:
Bitmap theBitmap = Glide.
with(this).
load("http://....").
asBitmap().
into(100, 100). // Width and height
get();
Parece que puede pasar -1,-1y obtener una imagen a tamaño completo (puramente basada en pruebas, no puedo verla documentada).
Note into(int,int)devuelve a FutureTarget<Bitmap>, por lo que debe envolver esto en una cubierta de bloque try-catch ExecutionExceptiony InterruptedException. Aquí hay un ejemplo de implementación más completo, probado y funcionando:
class SomeActivity extends Activity {
private Bitmap theBitmap = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// onCreate stuff ...
final ImageView image = (ImageView) findViewById(R.id.imageView);
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
Looper.prepare();
try {
theBitmap = Glide.
with(SomeActivity.this).
load("https://www.google.es/images/srpr/logo11w.png").
asBitmap().
into(-1,-1).
get();
} catch (final ExecutionException e) {
Log.e(TAG, e.getMessage());
} catch (final InterruptedException e) {
Log.e(TAG, e.getMessage());
}
return null;
}
@Override
protected void onPostExecute(Void dummy) {
if (null != theBitmap) {
// The full bitmap should be available here
image.setImageBitmap(theBitmap);
Log.d(TAG, "Image loaded");
};
}
}.execute();
}
}
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):
Glide
.with(getApplicationContext())
.load("https://www.google.es/images/srpr/logo11w.png")
.asBitmap()
.into(new SimpleTarget<Bitmap>(100,100) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
image.setImageBitmap(resource); // Possibly runOnUiThread()
}
});
como sugirió @hennry si necesitabas la misma imagen, usanew SimpleTarget<Bitmap>()