【发布时间】:2016-03-05 04:03:00
【问题描述】:
在this 回答之后,我正在尝试使用毕加索在 ListView 中延迟加载图像。这是我的代码:
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 一起工作。
标签: android lazy-loading picasso