Utiliser glide pour charger bitmap à ImageView
Je voudrais utiliser une descente à la charge bitmap à ImageView après le recadrage et redimensionnement d'une image bitmap.
Je ne veux pas utiliser ImageView.setImageBitmap(bitmap);
parce que je suis le chargement des images plein et c'est peut-être un peu de mémoire, même si les images sont de petite taille, j'ai juste besoin d'utiliser Glide parce que je sais qu'il optimise l'image mise en cache.
J'ai lu cette post, mais je n'ai pas tout à fait comprendre sa solution quand j'ai essayé de la mettre en œuvre. Alors peut-être que quelqu'un a un plus propre et plus facilement compréhensible solution.
C'est mon code qui prend une image et crée une image bitmap.
J'ai besoin d'utiliser glisse au lieu de ImageView.setImageBitmap(bitmap);
.
new AsyncTask<String, Void, Void>() {
Bitmap theBitmap = null;
Bitmap bm = null;
@Override
protected Void doInBackground(String... params) {
String TAG = "Error Message: ";
try {
//Load the image into bitmap
theBitmap = Glide.
with(mContext).
load("http://example.com/imageurl").
asBitmap().
into(-1, -1).
get();
//resizes the image to a smaller dimension out of the main image.
bm = Bitmap.createBitmap(theBitmap, 0, 0, 210, 80);
} catch (final ExecutionException e) {
Log.e(TAG, e.getMessage());
} catch (final InterruptedException e) {
Log.e(TAG, e.getMessage());
} catch (final NullPointerException e) {
//
}
return null;
}
@Override
protected void onPostExecute(Void dummy) {
if (null != theBitmap) {
//Set image to imageview.
**//I would like to Use Glide to set the image view here Instead of .setImageBitmap function**
holder.mImageView.setImageBitmap(bm);
holder.mImageView.setAdjustViewBounds(true);
holder.mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
}
}
}.execute();
ImageView
montrer carré blanc?Non, bitmap n'est pas nulle, j'ai besoin d'utiliser Glisse à l'ensemble d'une image Bitmap dans ImageView au lieu de mettre directement.
La raison est parce que je suis de chargement beaucoup d'images, qui a besoin de la mémoire cache. Vous comprenez ce que je veux dire?
OriginalL'auteur Html Tosin | 2015-11-14
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin
AsyncTask
de chargement de l'image avec la Glisse. Glisse chargement de l'image asynchronys.Essayez d'utiliser ce code:
J'ai édité ma réponse, merci de vérifier ce point. p.s. Êtes-vous à l'aide des constantes de valeurs (par exemple, 210,80) pour démarrer Bitmap sur le Dessus? Je pense que c'est une mauvaise soci et vous devez utiliser des
Drawable
avec haut aligment.Merci mais cela ne fonctionne pas non plus, Lorsque vous créez votre image bitmap à l'intérieur de onResourceReady, Il fait encore la même chose que lorsque son à l'extérieur de onResourceReady. Pas de changements!
J'utilise des valeurs constantes, car c'est la taille devrait être recadrée de l'image réelle, et pas de n'importe quelle taille
J'obtiens cette erreur parfois - Bitmap trop volumineux pour être envoyé dans une texture
OriginalL'auteur Yuriy Kolbasinskiy