Android: muestra el símbolo de carga en Network ImageView

Estoy usando NetworkImageView de la biblioteca de Volley para cargar imágenes.

Pero mientras la imagen toma tiempo de carga desde una URL, quiero mostrar un símbolo de carga giratoria / en movimiento en el contenedor de imágenes.

Intenté usar la función setDefaultImageResId () para establecer una imagen loader.gif. Pero creo que el formato gif no es compatible con Android de forma nativa.

Por favor aconséjame. Gracias.

Sólo tienes que poner el NetworkImageView y el ProgressBar dentro de un FrameLayout o un RelativeLayout , algo así

 <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <ProgressBar style="?android:attr/progressBarStyle" android:layout_width="..." android:layout_height="..." /> <com.android.volley.toolbox.NetworkImageView android:layout_width="..." android:layout_height="..." /> </FrameLayout> 

Tenga en cuenta que el ORDER COUNTS , asegúrese de que coloca el NetworkImageView después de ProgressBar para que el NetworkImageView permanezca en la parte superior de ProgressBar después de cargar la imagen.

¡Espero eso ayude!

Estás en lo correcto. Los gifs animados no son realmente compatibles con Android. Pero la buena noticia es que puedes usar la barra / rueda construida en progreso. Lea sobre esto aquí .

Tendrás que cambiar el NetworkImageView que has estado utilizando con un ImageView normal y cargar tu imagen usando ImageLoader . De esta manera puede implementar un oyente para cambiar la rueda de progreso. Esto significa que necesitará crear un RequestQueue y un ImageLoader . Le aconsejo crear uno de cada uno y compartirlos a través de una clase singleton con quien lo necesite en su código.

La carga de la imagen debe buscar algo a lo largo de las líneas de:

 // ** code in init the progress wheel ** imageLoader.get(url, new ImageListener() { @Override public void onResponse(ImageContainer response, boolean isImmediate) { if (response != null) { Bitmap bitmap = response.getBitmap(); if (bitmap != null) { // ** code to turn off the progress wheel ** // ** code to use the bitmap in your imageview ** } @Override public void onErrorResponse(VolleyError error) { // ** code to handle errors ** } }); 

He hecho esto usando la animación dibujable. Estos son los pasos:

Animar dibujable ic_sync_drawable.xml:

 <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/selected" android:oneshot="false"> <item android:drawable="@drawable/ic_popup_sync_1" android:duration="50" /> <item android:drawable="@drawable/ic_popup_sync_2" android:duration="50" /> <item android:drawable="@drawable/ic_popup_sync_3" android:duration="50" /> <item android:drawable="@drawable/ic_popup_sync_4" android:duration="50" /> <item android:drawable="@drawable/ic_popup_sync_5" android:duration="50" /> <item android:drawable="@drawable/ic_popup_sync_6" android:duration="50" /> </animation-list> 

Ahora en código java estoy usando ImageView:

 Drawable drawable = getContext().getResources().getDrawable(R.drawable.ic_sync_drawable); ImageView imageView = new ImageView(getContext()); imageView.setImageDrawable(drawable); imageLoader.get(imageurl, ImageLoader.getImageListener(imageView, 0, 0)); ViewFlipper.addView(imageView); //start animation AnimationDrawable frameAnimation = (AnimationDrawable) drawable; frameAnimation.start(); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.