如何从毕加索图书馆加载网址

时间:2016-06-05 14:56:55

标签: android picasso

我在谷歌地图api上使用picasso库设置标记与图像。但我需要装载从毕加索装载的drawable。

我试过这个,但它没有返回从毕加索加载的网址

Target target = new Target() {
          @Override
          public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {

          }

        @Override
        public void onBitmapFailed(Drawable errorDrawable) {}

        @Override


     public void onPrepareLoad(Drawable placeHolderDrawable) {}
    };

3 个答案:

答案 0 :(得分:2)

在加载了drawable之后,您无法从Picasso 获取URL(Picasso.LoadedFrom只会告诉您图像是否是从 DISK 加载的, MEMORY NETWORK )。

但是,当您告诉Picasso .load()图像时需要指定URL,您只需将URL存储在某处并稍后使用即可。

如果您的实际目标是将自定义标记图标从远程网址加载到Google地图标记中,以下是使用临时ImageView执行此操作的方法:

private void loadImageFromUrlIntoMarker(final String url, final Marker marker) {
    final ImageView iv = new ImageView(context);
    Picasso.with(context).load(url).into(iv, new Callback() {
        @Override
        public void onSuccess() {
            Bitmap bm = ((BitmapDrawable) iv.getDrawable()).getBitmap();
            try {
                marker.setIcon(BitmapDescriptorFactory.fromBitmap(bm));
            } catch (Exception e) {
                Log.e(getClass().getSimpleName(), "Could not load image into marker.");
            }
        }

        @Override
        public void onError() {
            Log.e(getClass().getSimpleName(), "Could not load image from " + url);
        }
    });
}

try { ... } catch { ... }很重要,因为当drawable可用时,标记可能无效。

答案 1 :(得分:1)

毕加索的基本用法

    Picasso.with(context).load(my_url).into(my_view);

并使用gradle

导入库
 compile 'com.squareup.picasso:picasso:2.5.2'

答案 2 :(得分:1)

我不知道为什么你问这个问题,因为你需要一个url来加载Picasso的图像。你可以创建一个基本上像:

的函数
public void loadimage(final String loadingUrl){
    Picasso.with(getApplicationContext()).load(loadingUrl).into(yourimageview, new Callback() {
        @Override
        public void onSuccess() {
            Log.v("picasso","i successfully created image, here is url : "+loadingUrl);
        }

        @Override
        public void onError() {

        }
    });
}