Пикассо не загружает картинки в ImageView
Я пытаюсь использовать Пикассо для того, чтобы сделать ленивую загрузку изображения в ListView. Но на самом деле это не работает. В моем собственном адаптере я получаю ImageView, инициализирую объект Picasso и указываю загрузить изображение в указанный ImageView. Чтобы получить изображение с сервера, мне нужно было предоставить базовую аутентификацию, поэтому я создал собственный перехватчик, который добавляет заголовок аутентификации. Более того, мне нужно доверять каждому SSL-сертификату, потому что на данный момент сертификат не подписан. Поведение, с которым я столкнулся:
Ошибка аутентификации -> Я добавил заголовок. Ошибка исчезает.Ошибка доверия сертификата SSL -> Я добавил SslSocketFactory, тот же самый, который я использую для всех моих запросов залпа. Ошибка исчезает.Но все-таки картинки загружаются и теперь появляются какие-либо ошибки.
Выше код, который строит объект Пикассо:
public Picasso getPicassoDownloader() throws NoSuchAlgorithmException, KeyManagementException
{
TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] certs, String authType) {}
@Override
public void checkServerTrusted(X509Certificate[] certs, String authType) {}
@Override
public X509Certificate[] getAcceptedIssuers() {
X509Certificate[] myTrustedAnchors = new X509Certificate[0];
return myTrustedAnchors;
}
}
};
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new SecureRandom());
Picasso.Builder builder = new Picasso.Builder(getContext()).listener(new Listener() {
@Override
public void onImageLoadFailed(Picasso arg0, Uri arg1, Exception ex) {
ex.printStackTrace();
}
});
OkHttpClient client = new OkHttpClient();
client.setSslSocketFactory(sc.getSocketFactory());
client.setHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
// TODO Auto-generated method stub
return true;
}
});
client.networkInterceptors().add(new BasicAuthInterceptor());
Downloader downloader = new OkHttpDownloader(client);
return builder.downloader(downloader).build();
}
Затем, как я использую объект Picasso в метод getView моего адаптера:
ImageView imageView = (ImageView) convertView.findViewById(R.id.productImage);
Picasso picasso = null;
picasso.load(produit.getImageDefaultUri()).fit().into(imageView, new Callback(){
@Override
public void onError() {
System.out.println("Error");
}
@Override
public void onSuccess() {
System.out.println("Success");
}
});
Вот раздутый макет, который содержит ImageView, куда должна быть загружена картинка.
<RelativeLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/productImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp"
android:contentDescription="Product Image" />
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:visibility="visible"
android:indeterminateDrawable="@drawable/progressbar" >
</ProgressBar>
</RelativeLayout>
Было бы здорово, если бы кто-то мог помочь мне с этим! заранее спасибо