Maison > Questions et réponses > le corps du texte
android通过for循环得到bitmap,不知道是不是异步的原因,uri每次都一样,如何解决,如何同步得到bitmap,我的uri也可能是网页url或者本地地址
for (ImagesEntity imagesEntity : imagesEntities) {
final String uri = imagesEntity.getImage();
BitmapUtils.getBitmap(getActivity(), uri, new BitmapUtils.LoadImageCallback() {
@Override
public void callback(Bitmap result) {
//getBitmap
}
});
}
public static void getBitmap(Context context, String uri, final LoadImageCallback callback) {
LogUtils.d("getBitmap: " + uri);
Glide.with(context)
.load(uri)
.asBitmap()
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap bitmap, GlideAnimation anim) {
callback.callback(bitmap);
}
});
}
PHP中文网2017-04-17 17:26:41
Il peut être placé dans un fil de discussion. Vous pouvez accéder au bitmap de cette manière et écrire la méthode suivante dans la boucle
bitmap = Glide.with(context)
.load(getGlideUrl(url))
.asBitmap()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
.get();
黄舟2017-04-17 17:26:41
uri est lu depuis imagesEntity. L'uri est le même à chaque fois et n'a rien à voir avec la synchronisation et l'asynchrone
De plus, si vous souhaitez changer ce rappel asynchrone en synchrone, ajoutez simplement get() ensuite. Cette méthode attendra jusqu'à ce que le résultat soit renvoyé