android如何同步得到bitmap

【字号: 日期:2022-12-14浏览:28作者:雯心

问题描述

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); }}); }

问题解答

回答1:

可以放到线程里,可通过这种方式的到bitmap,在循环里写如下方法

bitmap = Glide.with(context).load(getGlideUrl(url)).asBitmap().diskCacheStrategy(DiskCacheStrategy.ALL).into(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL).get();回答2:

uri是从imagesEntity中读出来的,uri每次都一样跟同步异步没什么关系另外,这种异步回调如果要改成同步的话后面加get()即可,这个方法会wait到结果返回

相关文章: