gpt4 book ai didi

android - 圆形进度条作为 Glide Placeholder

转载 作者:行者123 更新时间:2023-11-29 16:39:19 26 4
gpt4 key购买 nike

我正在使用 glide 显示来自服务器的图像。我想显示一个圆形进度条作为占位符。我从progress-bar-while-loading-image-using-glide试过这个方法但它不起作用。我错过了什么?

我正在展示 Activity 中的回收 View 。当用户单击 onItem 时,图像会在包含 Viewpager 的 fragment 中打开。我正在使用 glide 在 vi​​ewpager 中加载图像。

适配器类 -

public class MyViewPagerAdapter extends PagerAdapter {
private ArrayList<Object> imagesList = new ArrayList<>();
public MyViewPagerAdapter(ArrayList<Object> images) {
this.imagesList = images;
}

@NonNull
@SuppressLint("ClickableViewAccessibility")
@Override
public Object instantiateItem(@NonNull final ViewGroup container, int position) {
Object recyclerViewItem = imagesList.get(position);
final View view = LayoutInflater.from(container.getContext()).inflate(R.layout.util_image_fullscreen_preview, container, false);
final TouchImageView imageViewPreview = view.findViewById(R.id.image_preview);
CircularProgressDrawable circularProgressDrawable =
new CircularProgressDrawable(container.getContext());
circularProgressDrawable.start();

Photos image = (Photos) imagesList.get(position);
GlideApp
.with(container.getContext())
.asBitmap()
.load(advertiser.getUrl())
.placeholder(circularProgressDrawable)
.fitCenter().diskCacheStrategy(DiskCacheStrategy.ALL)
.into(imageViewPreview);


container.addView(view);
return view;

}

@Override
public int getCount() {
return imagesList.size();

}


@Override
public boolean isViewFromObject(View view, Object obj) {
return view.equals(obj);
}


@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}

最佳答案

在 View 分页器中,您可以在实例化方法中使用以下方法。第一种方法是加载 gif 图片,第二种方法是简单的带进度条的图片加载。

////  for loading gif images 
RequestOptions requestOptions = new RequestOptions();
requestOptions.diskCacheStrategy(DiskCacheStrategy.ALL);
requestOptions.placeholder(R.drawable.itemes_bg);
requestOptions.error(R.drawable.itemes_bg);


Glide.with(context).applyDefaultRequestOptions(requestOptions).asGif().load(gifList.get(position)).listener(new RequestListener<GifDrawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<GifDrawable> target, boolean isFirstResource) {

Toast.makeText(context, "No Internet Connection...", Toast.LENGTH_SHORT).show();
return false;
}

@Override
public boolean onResourceReady(GifDrawable resource, Object model, Target<GifDrawable> target, DataSource dataSource, boolean isFirstResource) {

return false;
}
}).into(holder.imageView);

//// for loading simple images

RequestOptions requestOptions = new RequestOptions();
requestOptions.diskCacheStrategy(DiskCacheStrategy.ALL);
requestOptions.placeholder(R.drawable.progress);

Glide.with(activity).applyDefaultRequestOptions(requestOptions).load(imageList.get(position).getImgUrl().trim()).listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
progressBar.setVisibility(View.GONE);
Toast.makeText(activity, "No Internet Connection", Toast.LENGTH_SHORT).show();
return false;
}

@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
progressBar.setVisibility(View.GONE);
return false;
}
}).into(imageView);

请记住,您必须在您的 xml 中添加以下代码

<ProgressBar
android:id="@+id/progBar"
android:padding="150dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible" />

关于android - 圆形进度条作为 Glide Placeholder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51633371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com