搜尋

首頁  >  問答  >  主體

android如何同步得到bitmap

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);
                    }
                });
    }
PHPzPHPz2802 天前507

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-04-17 17:26:41

    可以放到執行緒裡,可透過這種方式的到bitmap,在循環裡寫如下方法

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

    回覆
    0
  • 黄舟

    黄舟2017-04-17 17:26:41

    uri是從imagesEntity中讀出來的,uri每次都一樣跟同步異步沒什麼關係
    另外,這種異步回調如果要改成同步的話後面加get()即可,這個方法會wait到結果返回

    回覆
    0
  • 取消回覆