2016-09-01 8 views
0

こんにちは皆プログレスバーに問題があります。私はギャラリービューを作成しようとしましたが、グリッドビューに表示されているすべての画像が表示されました。しかし、すべての画像がロードされてもプログレスバーが消えない場合は、コードを確認してください。 プログレスバーとして回転ローディングを使用していますグリッドビューの画像ギャラリーを使用して進行状況バーを設定する

が、これはXML

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<ImageView 
    android:layout_width="380dp" 
    android:layout_height="380dp" 
    android:id="@+id/imageView2" 
    /> 
<com.victor.loading.rotate.RotateLoading 
    android:id="@+id/rotateloading" 
    android:layout_width="80dp" 
    android:layout_height="80dp" 
    app:loading_width="5dp" 
    android:visibility="visible" 
    app:loading_color="#ffffff" 
    android:layout_centerInParent="true"/>   
    </RelativeLayout> 
[![Check the image][1]][1] 
in the image the picture loads but the progress bar did not stops and invisible. 

ある

public class ImageAdapter extends BaseAdapter { 
private Context mContext; 
ProgressDialog progressDialog; 


RotateLoading rotateLoading; 
int count; 

public ImageAdapter(Context c) { 
    mContext = c;} 

public int getCount() { 
    return mThumbIds.length; 

} 

@Override 
public String getItem(int position) { 
    return mThumbIds[position]; 
} 


public long getItemId(int position) { 
    return 0; 
} 

// create a new ImageView for each item referenced by the Adapter 
public View getView(int position, View convertView, ViewGroup parent) { 
    ImageView imageView; 

    if (convertView == null) { 
     convertView= LayoutInflater.from(mContext).inflate(R.layout.image_gallery,parent,false); 
     imageView=(ImageView)convertView.findViewById(R.id.imageView2); 
     imageView.setLayoutParams(new RelativeLayout.LayoutParams(380,480)); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 

     // rotateLoading=(RotateLoading)convertView.findViewById(R.id.rotateloading); 
     progressDialog=ProgressDialog.show(mContext,"Loading Data","Please wait.....",false,false); 

    } else { 
     imageView = (ImageView) convertView.findViewById(R.id.imageView2); 
    } 
    String url = null; 
    url=getItem(position); 


    Glide.with(mContext) 
      .load(url) 
      .thumbnail(0.5f) 
      .diskCacheStrategy(DiskCacheStrategy.ALL) 
      .placeholder(android.R.drawable.progress_indeterminate_horizontal) 
      .centerCrop() 
      .listener(new RequestListener<String, GlideDrawable>() { 
       @Override 
       public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { 
       // rotateLoading.setVisibility(View.INVISIBLE); 
        // rotateLoading.stop(); 
        progressDialog.dismiss(); 
        return false; 
       } 

       @Override 
       public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { 

        //rotateLoading.setVisibility(View.INVISIBLE); 
        //rotateLoading.stop(); 
        progressDialog.dismiss(); 

        return false; 
       } 
      }) 
      .crossFade() 
      .into(imageView); 
    return convertView; 
} 

// Keep all Images in array 
public String[] mThumbIds = { 
     "http://idealphotography.biz/wp-content/uploads/2016/06/Wide-wallpaper-nature-480x800-In-Wallpaper-HD-1366x768-with-wallpaper-nature-480x800-Download-HD-Wallpaper.jpg", 
     "http://greenywallpapers.com/wallpapers/10/275050-nature-wallpapers-720x1280.jpg", 
     "https://idealphotography.biz/wp-content/uploads/2016/06/Best-wallpaper-nature-480x800-For-Wallpapers-Image-with-wallpaper-nature-480x800-Download-HD-Wallpaper.jpg", 
     "https://idealphotography.biz/wp-content/uploads/2016/06/Best-wallpaper-nature-480x800-In-Windows-Wallpaper-Themes-with-wallpaper-nature-480x800-Download-HD-Wallpaper.jpg", 
     "https://idealphotography.biz/wp-content/uploads/2016/06/Highres-wallpaper-nature-480x800-About-Windows-7-Wallpaper-with-wallpaper-nature-480x800-Download-HD-Wallpaper.jpg", 
     "http://freewallpaper-background.com/wp-content/uploads/2014/11/M-3.jpg", 
     "http://naturewallpaperfree.com/mobile/sky/nature-wallpaper-480x800-127-96fbd452.jpg", 

}; 

} 

を更新し、問題を解決してください。

[1]: http://i.stack.imgur.com/2Vqyp.jpg 
+0

誰も私の質問に答えませんか? –

答えて

0

あなたのxmlファイルは

<com.victor.loading.rotate.RotateLoading 
    android:id="@+id/rotateloading" 
    android:layout_width="80dp" 
    android:layout_height="80dp" 
    app:loading_width="5dp" 
    app:loading_color="#ffffff" 
    android:layout_centerInParent="true" 
    android:visibility="invisible"/> 

を更新し、あなたのgetViewメソッド()メソッド、

 rotateLoading.start(); 
     rotateLoading.setVisibility(View.VISIBLE); 
     Glide.with(mContext) 
     .load(url) 
     .thumbnail(0.5f) 
     .diskCacheStrategy(DiskCacheStrategy.ALL) 
     .fitCenter() 
     .listener(new RequestListener<String, GlideDrawable>() { 
      @Override 
      public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { 
       rotateLoading.setVisibility(View.INVISIBLE);    
       rotateLoading.stop(); 

       return false; 
      } 

      @Override 
      public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { 
       rotateLoading.setVisibility(View.INVISIBLE); 
       rotateLoading.stop(); 

       return false; 
      } 
     }) 
     .crossFade() 
     .into(imageView); 
+0

遅く返事を申し訳ありません。 でもエラーは同じです。プログレスバーが表示されたままになります。 –

+0

少数のイメージではプログレスバーは表示されませんが、すべてでは表示されません。私の問題を解決してください –

+0

カスタムRotateLoadingの代わりに通常のProgressBarを試しましたか? –

0

に私はImageViewのオーバー進捗状況を示しライブラリ作成:PowerfulImageViewを。

<com.stefanosiano.powerfulimageview.PowerfulImageView 
    android:layout_width="380dp" 
    android:layout_height="380dp" 
    android:id="@+id/imageView2" 
    app:piv_progress_mode="circular" /> 

その後、あなたのGetViewメソッドは、に変更します:

// create a new ImageView for each item referenced by the Adapter 
public View getView(int position, View convertView, ViewGroup parent) { 
    PowerfulImageView imageView; 

    if (convertView == null) { 
     convertView= LayoutInflater.from(mContext).inflate(R.layout.image_gallery,parent,false); 
     imageView=(PowerfulImageView)convertView.findViewById(R.id.imageView2); 
     imageView.setLayoutParams(new RelativeLayout.LayoutParams(380,480)); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
    } else { 
     imageView = (PowerfulImageView) convertView.findViewById(R.id.imageView2); 
    } 
    imageView.changeProgressMode(PivProgressMode.CIRCULA‌​R); 
    String url = null; 
    url=getItem(position); 


    Glide.with(mContext) 
      .load(url) 
      .thumbnail(0.5f) 
      .diskCacheStrategy(DiskCacheStrategy.ALL) 
      .placeholder(android.R.drawable.progress_indeterminate_horizontal) 
      .centerCrop() 
      .crossFade() 
      .into(imageView); 
    return convertView; 
} 

私に教えてください、それは、

compile 'com.stefanosiano:powerlessimageview:0.3.1' 

この行をGradleのために追加すると、続いてこれであなたのXMLを変更

インポートすべてがうまくいったら:)

+0

おそらく私はこの答えで遅れています:D –

関連する問題