Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android Picasso – Marcador de posición y estilo de imagen de error

Estoy utilizando la biblioteca Picasso para descargar imágenes desde la red. ¿Apenas me pregunto si puedo utilizar un diálogo del progreso o una imagen del GIF como sostenedor del lugar? También cualquier idea sobre cómo hacer que la imagen de titular de lugar para ser más pequeño (y encajar en el centro) que la imagen real que se descarga?

Traté de ir a través de las muestras, pero no hay suerte. ¿Alguien aquí que consiguió esto trabajar?

  • Picasso no conserva la proporción de aspecto al cambiar el tamaño de la imagen
  • Android: cargar archivo svg desde la web y mostrarlo en la vista de imagen
  • Cultivo de Picasso a una vista
  • Java.lang.IllegalArgumentException: La ruta no debe estar vacía en Picasso
  • Picasso: cargar imágenes en widget listview
  • ¿Cómo uso la caché de disco en Picasso?
  • Uso de Picasso con Image Getter
  • ¿Podría ocultar la barra de progreso después de cargar la imagen en picasso?
  • 5 Solutions collect form web for “Android Picasso – Marcador de posición y estilo de imagen de error”

    Puede utilizar una imagen de marcador de posición utilizando el * .placeholder (R.drawable.image_name) * en su llamada de Picasso como:

    Picasso.with(context) .load(imageUrl) .placeholder(R.drawable.image_name) 

    Si desea utilizar una barra de progreso en lugar de una imagen de marcador de posición, puede crear una devolución de llamada dentro de la función .into . Haga algo similar a lo siguiente:

    En su opinión:

     //create the progressBar here and set it to GONE. This can be your adapters list item view for example <RelativeLayout android:id="@+id/myContainer" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:visibility="gone" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:layout_marginTop="20dp" android:layout_marginBottom="20dp"/> <ImageView android:id="@+id/myImageView" android:layout_width="60dp" android:layout_height="60dp" android:layout_gravity="center" android:layout_margin="5dp" android:paddingLeft="60dp" android:scaleType="centerCrop"></ImageView> </RelativeLayout> 

    En su adaptador / clase:

     //create a new progress bar for each image to be loaded ProgressBar progressBar = null; if (view != null) { progressBar = (ProgressBar) view.findViewById(R.id.progressBar); progressBar.setVisibility(View.VISIBLE); } //get your image view ImageView myImage = (ImageView) view.findViewById(R.id.myImageView); //load the image url with a callback to a callback method/class Picasso.with(context) .load(imageUrl) .into(myImage, new ImageLoadedCallback(progressBar) { @Override public void onSuccess() { if (this.progressBar != null) { this.progressBar.setVisibility(View.GONE); } } }); 

    Dentro de su adaptador / clase como arriba Creo una clase interna para la devolución de llamada:

     private class ImageLoadedCallback implements Callback { ProgressBar progressBar; public ImageLoadedCallback(ProgressBar progBar){ progressBar = progBar; } @Override public void onSuccess() { } @Override public void onError() { } } 

    Espero que esto tenga sentido!

    Implementé el diálogo de progreso hasta la descarga de imágenes y su muy simple. Tome su ImageView en la distribución relativa y coloque el cargador de progreso en la misma vista de imagen. Aplique el código a continuación y controle la visibilidad del diálogo de progreso únicamente.

      holder.loader.setVisibility(View.VISIBLE); holder.imageView.setVisibility(View.VISIBLE); final ProgressBar progressView = holder.loader; Picasso.with(context) .load(image_url) .transform(new RoundedTransformation(15, 0)) .fit() .into(holder.imageView, new Callback() { @Override public void onSuccess() { progressView.setVisibility(View.GONE); } @Override public void onError() { // TODO Auto-generated method stub } }); } 

    Espero que ayude a alguien! 🙂

    Su muy simple para mostrar la barra de progreso.

    Agregue este código a la actividad para cargar la imagen con la barra de progreso.

     Picasso.with(this) .load(hoteImageStr) .error(R.drawable.loading) .into(img, new com.squareup.picasso.Callback() { @Override public void onSuccess() { if (progress != null) { progress .setVisibility(View.GONE); } } @Override public void onError() { } }); 

    Añada esto al archivo de diseño.

      <RelativeLayout android:id="@+id/hoteldetails_myContainer" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ProgressBar android:id="@+id/hoteldetails_progressBar" style="?android:attr/progressBarStyleSmall" android:layout_width="50dp" android:layout_height="50dp" android:layout_gravity="center" android:visibility="gone" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:layout_marginTop="20dp" android:layout_marginBottom="20dp" /> <ImageView android:id="@+id/hoteldetails_imageView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scaleType="fitXY" /> </RelativeLayout> 

    Primero cree un diseño dibujable como este:
    Progress_animation.xml:

     <?xml version="1.0" encoding="utf-8"?> <animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/loading" android:pivotX="50%" android:pivotY="50%"/> 

    Add loading.png to drawable
    Loading.png
    Uso:

     Picasso.with(context).load(imageUri).placeholder(R.drawable.progress_animation).into(imgView); 

    Debe configurar su ProgressBar además de la biblioteca de Picasso y debe administrar la visibilidad de la misma manualmente mediante los oyentes.

    Estoy usando UniversalImageLoader y la biblioteca de Picasso debe ser muy similar.

     private ImageLoadingListener photoSuccess = new ImageLoadingListener() { @Override public void onLoadingStarted(String imageUri, View view) { } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { if(progress != null) progress.setVisibility(View.GONE); } @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { if(progress != null) progress.setVisibility(View.GONE); if(mImage != null) mImage.setVisibility(View.VISIBLE); } @Override public void onLoadingCancelled(String imageUri, View view) { } }; 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.