您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
如果想在ImageView中加载图片时显示加载进度,可以使用ProgressDrawable来实现。ProgressDrawable是一个Drawable,它可以显示加载进度。以下是一个示例代码:
首先,创建一个ProgressDrawable类来实现加载进度的显示:
public class ProgressDrawable extends Drawable {
private Paint paint = new Paint();
private int progress = 0;
public ProgressDrawable() {
paint.setColor(Color.BLUE);
}
@Override
public void draw(@NonNull Canvas canvas) {
// 绘制进度条
Rect bounds = getBounds();
int width = (int) (bounds.width() * progress / 100f);
canvas.drawRect(0, 0, width, bounds.height(), paint);
}
@Override
public void setAlpha(int alpha) {
paint.setAlpha(alpha);
}
@Override
public void setColorFilter(ColorFilter colorFilter) {
paint.setColorFilter(colorFilter);
}
@Override
public int getOpacity() {
return PixelFormat.OPAQUE;
}
public void setProgress(int progress) {
this.progress = progress;
invalidateSelf();
}
}
然后,在加载图片时,通过设置ImageView的drawable为ProgressDrawable,并在加载图片时更新进度:
ImageView imageView = findViewById(R.id.imageView);
ProgressDrawable progressDrawable = new ProgressDrawable();
imageView.setImageDrawable(progressDrawable);
Glide.with(context)
.load("your_image_url")
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
// 图片加载完成,设置进度为100%
progressDrawable.setProgress(100);
return false;
}
})
.into(imageView);
这样,在加载图片时,会在ImageView中显示一个蓝色的进度条,随着图片加载进度的增加而增长,直到图片加载完成。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。