android - 如何在未下载图像时显示加载进度

标签 android android-glide progress

我正在尝试设置 progressdialogprogressbar 而图像未下载,我已经使用位于 drawable 文件夹中的图像,我设置了这个图片为默认图片,图片未下载。我如何通过 progress 像这样替换 default image :

enter image description here

Java:

public class Art extends Fragment {
RecyclerView recyclerView;
GridView myGrid;
CategoryAdapter adapter;

public Art() {
    // Required empty public constructor
}

@Override
public View onCreateView(final LayoutInflater inflater, final ViewGroup  container, Bundle savedInstanceState) {
    final ArrayList<String> movieList =  new ArrayList<>();
    movieList.add("https://myimage.com");
    movieList.add("https://myimage.com");
    View v =  inflater.inflate(R.layout.fragment_art, container, false);
    myGrid= (GridView) v.findViewById(R.id.gridViewCategory);
    adapter =new CategoryAdapter(getActivity(),movieList);
    myGrid.setAdapter(adapter);
    myGrid.setOnItemClickListener(new   android.widget.AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Intent popup = new Intent(getActivity(), Pop.class);
                    popup.putExtra("WallpaperURL", movieList.get(position));
                    startActivity(popup);
        }
    });
    return v;
   }
}
class CategoryAdapter extends BaseAdapter {
   private Context context;
   private ArrayList<String> imageId=new ArrayList<String>();
    CategoryAdapter(Context context,ArrayList<String> imageId){
    this.context=context;
    this.imageId=imageId;
}
@Override
public int getCount() {
    return imageId.size();
}

@Override
public Object getItem(int position) {
    return imageId.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}
class ViewHolder{
    ImageView CategoryImage;
    ViewHolder(View view){
        CategoryImage = (ImageView) view.findViewById(R.id.cat_imageView);
    }
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row=convertView;
    ViewHolder holder=null;
    if(row == null){
        LayoutInflater inflater= (LayoutInflater)    context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
        row=inflater.inflate(R.layout.picture_item,parent,false);
        holder=new ViewHolder(row);
        row.setTag(holder);
    }
    else{
        holder=(ViewHolder) row.getTag();
    }
      Glide.with(context).load(imageId.get(position)).placeholder(R.drawable.arrw).into(holder.CategoryImage);
      return row;
      }
   }

最佳答案

我想你可能想要这样

view.findViewById(R.id.progress_bar).setVisibility(View.VISIBLE);
//enable loading

Glide.with(context)
     .load(IMAGES.get(position))
     .error(R.drawable.matrade_logo2)
     .placeholder(R.drawable.placeholder)
     .listener(new RequestListener < String, GlideDrawable > () {
         @Override
         public boolean onException(Exception e, String model, Target < GlideDrawable > target, boolean isFirstResource) {
             //
             return false;
         }

         @Override
         public boolean onResourceReady(GlideDrawable resource, String model, Target < GlideDrawable > target, boolean isFromMemoryCache, boolean isFirstResource) {
             // hide loading if image finished downloading
             return false;
         }
     })
     .into(imageView);

关于android - 如何在未下载图像时显示加载进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43756941/

相关文章:

android - 自己定义的 Layout , onDraw() 方法没有被调用

android - 软键盘打开时不要缩小 ImageView 或背景

android - 具有 scaleType centerCrop 过渡的共享元素是跳跃的

terminal - 在 AppleScript 中为 "do shell script"的对话框添加进度条

Android DragShadowBuilder 坚持触摸点的中心

java - 如果将 SharedPreferences 放在那里,代码将不起作用

android - Glide - 没有来自 firebase 的显示图像

java - Glide OnResource设置Call​​back类成员变量以供复用

c# - 报告/监控长流程进度的设计模式

javascript - 进度条达到 100% 时改变颜色