android 如何使用加载占位符,这是一个动画微调与图像加载器,如滑翔,毕加索等?

vql8enpb  于 2023-03-06  发布在  Android
关注(0)|答案(2)|浏览(145)

我试图插入一个通用的加载圆作为占位符,而图像正在加载像滑翔或毕加索图像加载库。
我一辈子都找不出应该如何从xml创建一个旋转的可绘制对象。
我尝试通过创建动画列表来使用XML格式的AnimationDrawable,但它甚至没有显示出来(甚至不是静态的)。
我只想有一个简单的圆圈,它可以自己旋转,所有的都是xml可绘制的,这样我就可以把id作为占位符传递给我的图像加载器。如果这是不可能的,请现在告诉我,这样我就可以保存很多研究:)
编辑:一些代码,使它更清楚,我需要一个旋转的drawable这个滑翔命令:

Glide.with(context)
.load(imageUrl)
.into(imageView)
.placeHolder(R.drawable.spinning_loading_placeholder);

虽然图像正在加载一个占位符drawable将显示在那里的图像将稍后。我需要一个drawable旋转本身。

8xiog9wr

8xiog9wr1#

您可以将ProgressBar元素添加到布局XML中,然后根据需要显示/隐藏此元素。ProgressBar视图是内置的,并且已经设置了动画,不需要自定义AnimationDrawable。

bwntbbo3

bwntbbo32#

您可以使用类似于以下内容的内容:

Glide.with(mContext).load(imageUrl).asBitmap().centerCrop().into(new BitmapImageViewTarget(vh.avatarImageView) {

        @Override
        public void onLoadStarted(Drawable placeholder) {
                vh.avatarImageView.setImageDrawable(mContext.getResources().getDrawable(R.drawable.ic_placeholder));
        }

        @Override
        public void onLoadFailed(Exception e, Drawable errorDrawable) {
            vh.avatarImageView.setImageDrawable(mContext.getResources().getDrawable(R.drawable.ic_failed_download));
        }

        @Override
        protected void setResource(Bitmap resource) {
            RoundedBitmapDrawable circularBitmapDrawable =
                    RoundedBitmapDrawableFactory.create(mContext.getResources(), resource);
            circularBitmapDrawable.setCircular(true);
            vh.avatarImageView.setImageDrawable(circularBitmapDrawable);
        }
    });

相关问题