2010-12-10 23 views
3

J'ai défini une vue d'image par programme et l'ai mise à jour de manière asynchrone avec les images téléchargées depuis le webservice.Comment insérer une barre de progression dans une vue d'image par programme

Maintenant, je veux ajouter une barre de progression à l'affichage de l'image de sorte que l'affichage de l'image montrera la barre de progression jusqu'à ce que l'image est chargée. Je n'ai pas défini l'imageview dans le fichier xml parce que je le mets à jour dans une vue de défilement horizontal.

S'il vous plaît aidez-en désespérément besoin ... !!!

Voici le code que je mets à jour l'affichage de l'image

protected ImageView asImageView(final String message,final String path){ 
    final ImageView iv=new ImageView(this); 


    AsyncImageLoaderv asyncImageLoaderTop = new AsyncImageLoaderv(); 
    Bitmap cachedImageTop= 
    asyncImageLoaderTop.loadDrawable(
      path, new AsyncImageLoaderv.ImageCallback() { 
       public void imageLoaded(Bitmap imageDrawable, 
         String imageUrl) { 

        iv.setImageBitmap(imageDrawable); 
       } 
      }); 
    iv.setImageBitmap(cachedImageTop); 
    iv.setScaleType(ImageView.ScaleType.FIT_XY); 
    LinearLayout.LayoutParams params= new LinearLayout.LayoutParams(100,120); 
    params.setMargins(10, 10, 10, 10); 
    iv.setLayoutParams(params); 

    iv.setOnClickListener(new OnClickListener() { 

     public void onClick(View arg0) { 
      startActivity(new Intent(getApplicationContext(), 
        ShowPhotoActivity.class).putExtra("imagePath", 
        path).putExtra("message", message)); 


     } 
    }); 
    return iv; 
} 

Répondre

1

Je viens d'avoir un problème similaire. Je ne suis pas sûr que vous pouvez insérer un ProgressBar sur un ImageView, mais vous pouvez l'afficher à la place de l'imageview, puis le masquer en utilisant setVisibility (View.GONE). Je vois que votre fonction renvoie ImageView. Peut-être qu'il pourrait retourner le type de vue, et si aucune image n'est présente, il pourrait renvoyer un ProgressBar qui est également une vue? Vous pouvez également créer et utiliser un AnimationDrawable.

3

Je sais que cela quelques années, mais je pensais que je serais encore poste qu'il pourrait aider quelqu'un à l'avenir ...

Vous devez utiliser la bibliothèque fournie par Koush. Il est extrêmement simple et direct à utiliser. De plus, il gère automatiquement toutes les choses compliquées pour vous!

https://github.com/koush/UrlImageViewHelper

Documentation et d'autres explications sont disponibles à l'adresse ci-dessus - pas besoin de reproduire ici.