正在關注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