9

我正在尝试在使用 Glide 或 Picasso 等图像加载器库加载图像时插入通用加载圆作为占位符。

我一生都无法找出你应该如何从xml创建一个旋转的drawable。

我尝试通过创建动画列表在 XML 中使用 AnimationDrawable,但它甚至没有显示(甚至不是静态的)。

我只想有一个简单的圈子,它自己旋转,全部在一个 xml drawable 中,所以我可以将 id 作为占位符传递给我的图像加载器。如果那是不可能的,请现在告诉我,这样我可以节省很多研究:)

编辑:一些代码使它更清楚,我需要这个 Glide 命令的旋转绘图:

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

在加载图像时,将在图像稍后的位置显示占位符可绘制对象。我需要一个可以自己旋转的drawable。

4

2 回答 2

0

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

于 2014-09-16T17:26:22.573 回答
0

你可以使用这样的东西:

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);
        }
    });
于 2016-05-16T14:15:30.870 回答