У меня есть приложение, которое получает данные (изображения) из json, я пытаюсь показать Progressbar
во время загрузки изображения, но Progressbar
исчезло до появления изображения, я хочу, чтобы во время загрузки изображения отображалась полоса выполнения. использую библиотеку Glide.
Могу ли я сделать индикатор выполнения всегда видимым за изображением?
Мой adapter.java:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<Post> posts;
private Context context;
private RecyclerViewClickListener mClickListener;
ProgressBar progressBar;
public MyAdapter(List<Post> posts, Context context, RecyclerViewClickListener clickListener) {
this.posts = posts;
this.context = context;
this.mClickListener = clickListener;
}
public List<Post> getItems(){
return posts;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.picture_item,
parent, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.bindModel(posts.get(position));
}
@Override
public int getItemCount() { return posts.size(); }
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
Post mPost;
ImageView image;
ViewHolder(View v) {
super(v);
image = (ImageView) itemView.findViewById(R.id.cat_imageView);
progressBar = (ProgressBar) itemView.findViewById(R.id.progress);
progressBar.getIndeterminateDrawable().setColorFilter(Color.WHITE, PorterDuff.Mode.MULTIPLY);
v.setOnClickListener(this);
}
void bindModel(Post post) {
this.mPost = post;
Glide
.with(context)
.load(post.getImgUrl())
.asBitmap()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.priority(Priority.HIGH)
.listener(new RequestListener<String, Bitmap>() {
@Override
public boolean onException(Exception e, String model, Target<Bitmap> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Bitmap resource, String model, Target<Bitmap> target, boolean isFromMemoryCache, boolean isFirstResource) {
progressBar.setVisibility(View.GONE);
return false;
}
}).into(image);
}
@Override
public void onClick(View view) {
mClickListener.onClick(view, mPost);
}
}
}
public boolean onLoadFailed ...
, я могу использовать толькоonException
иonResourceReady
14.10.2017listener (com.bumptech.glide.request.RequestListener<? super java.lang.String,android.graphics.Bitmap>) in BitmapRequestBuilder cannot be applied to (anonymous com.bumptech.glide.request.RequestListener<java.lang.String,com.bumptech.glide.load.resource.drawable.GlideDrawable>)
14.10.2017