正在关注this回答,我试图在使用Picasso的ListView中延迟加载图像。这是我的代码:使用Picasso下载(带拦截器)的设置图像
public class PicassoInterceptor implements Interceptor {
private String param1;
private String param2;
private String param3;
private int param4;
private String param5;
public PicassoInterceptor(String param1, String param2, String param3, int param4, String param5) {
this.param1 = param1;
this.param2 = param2;
this.param3 = param3;
this.param4 = param4;
this.param5 = param5;
}
@Override
public Response intercept(Chain chain) throws IOException {
final MediaType JSON
= MediaType.parse("application/json; charset=utf-8");
Map<String, String> map = new HashMap<String, String>();
map.put("param1", param1);
map.put("param2", param2);
map.put("param3", param3);
map.put("param4", String.valueOf(param4));
String requestJsonBody = new Gson().toJson(map);
RequestBody body = RequestBody.create(JSON, requestJsonBody);
final Request original = chain.request();
final Request.Builder requestBuilder = original.newBuilder()
.url(param5)
.post(body);
return chain.proceed(requestBuilder.build());
}
}
适配器,getView方法中:
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.interceptors().add(new PicassoInterceptor(param1, param2,param3,param4, param5));
OkHttpDownloader downloader = new OkHttpDownloader(okHttpClient);
Picasso picasso = new Picasso.Builder(context).downloader(downloader).build();
现在,如果我理解正确的话,图像被下载。但是,如何在图像视图中设置它?
编辑:
图像沿着BASE64接收。
你解决了吗? –
不是我想要的方式,不得不要求服务器人员将方法从POST更改为GET,并构建URL。这样,工作,但没有设法使其与POST工作。 – Fustigador