我在谷歌地图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) {}
};
答案 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() {
}
});
}