Android Volley - Afficher la barre de progression dans listview de l'adaptateur lors du chargement de l'image

J'ai essayé de charger une image à partir du réseau avec Volley dans l'élément de liste. Alors que le téléchargement de l'image, la barre de progression montre, une fois terminé, il convient de se cacher.

Voici ma carte:

   public class NewsAdapter  extends CursorAdapter{
public NewsAdapter(Context context, Cursor c) {
super(context, c, true);
}
@Override
public Cursor getItem(int position) {
return (Cursor) super.getItem(position);
}
@Override
public void bindView(View view, final Context context, Cursor cursor) {
final NetworkImageView imgNewsItem = (NetworkImageView) view.findViewById(R.id.imgNewsItem); 
final ProgressBar progressNewsList = (ProgressBar) view.findViewById(R.id.progressNewsList);
progressNewsList.setVisibility(View.VISIBLE);
imgNewsItem.setVisibility(View.GONE);
Ln.d("get news image: %s", cursor.getString(cursor.getColumnIndex(News.IMAGE_COLUMN)));
ImageCacheManager.getInstance().getImageLoader().get(cursor.getString(cursor.getColumnIndex(News.IMAGE_COLUMN)), new ImageListener() {
@Override
public void onErrorResponse(VolleyError error) {
Ln.e(error);
progressNewsList.setVisibility(View.GONE);
imgNewsItem.setVisibility(View.VISIBLE);
imgNewsItem.setImageResource(R.drawable.news_default_image);
}
@Override
public void onResponse(ImageContainer response, boolean isImmediate) {
progressNewsList.setVisibility(View.GONE);
imgNewsItem.setVisibility(View.VISIBLE);
imgNewsItem.setImageBitmap(response.getBitmap());
}
});
}
@Override
public View newView(Context arg0, Cursor arg1, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View retView = inflater.inflate(R.layout.row_view, parent, false);
return retView;
}

}

J'ai débogué et a constaté que le Volley-téléchargement et le cache de l'image bitmap est ok, mais l'affichage de l'image ne s'affiche pas.

Mon élément de mise en page ressemble à ceci:

 <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp" >
<com.android.volley.toolbox.NetworkImageView
android:id="@+id/imgNewsItem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@drawable/news_default_image"
android:visibility="gone" />
<ProgressBar
android:id="@+id/progressNewsList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" 
>
</ProgressBar>
</LinearLayout>

La ImageCacheManager partir de cet exemple: https://github.com/rdrobinson3/VolleyImageCacheExample
Pourriez-vous me dire où je me trompe?. Merci à l'avance.

Mise à jour: l'autre, la barre de progression n'est pas montré lors du téléchargement.

Honnêtement, je ne vois pas comment vous en suivant l'exemple? Je pense que vous ne devriez pas appeler la get du chargeur.. Avez-vous simplement essayé: imgNewsItem.setImageUrl(<url>, ImageCacheManager.getInstance().getImageLoader());
Mais j'ai besoin de l'auditeur pour masquer la barre de progression.
Pourquoi vous vous cachez la ProgressBar si vous avez dismiss();.
Parce que je ne suis pas d'afficher une boîte de dialogue de progression. Je veux juste une barre de progression circulaire lors du téléchargement de l'image.

OriginalL'auteur R4j | 2013-10-18