当前位置: 首页 > 知识库问答 >
问题:

如何使用加载占位符,即带有Glide、Picasso等图像加载器的动画微调器?

江建明
2023-03-14

我试图插入一个通用加载圈作为占位符,而图像正在加载图像加载器库,如Glide或Picasso。

我无法找到你应该如何从xml创建一个旋转绘图。

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

我只想有一个简单的圆圈,它可以在一个可绘制的xml中自动旋转,这样我就可以将id作为占位符传递给我的图像加载器。如果这不可能,请现在告诉我,这样我可以节省大量研究:)

编辑:一些代码让它更清楚,我需要一个旋转绘图为这个滑动命令:

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

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

共有2个答案

司空海荣
2023-03-14

您可以使用这样的东西:

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);
        }
    });
韩羽
2023-03-14

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

 类似资料:
  • 我希望方法使用picasso从服务器加载图像,并且我希望显示一个进度条,直到照片完全下载完毕。下面是我的代码:

  • 我正在尝试使用Glide在Listview中加载一些图像。如果加载图像时未使用占位符,则图像将正确加载。然而,当我试图设置占位符时,我正在通过网络加载的图像似乎被拉伸了。这仅在使用占位符图像的情况下发生。如果我离开屏幕并返回(因此没有加载占位符图像),则图像会正确显示。 这是我的简单Glide实现:

  • 我试图使用在一个RecyclerView中加载4个图像,但它没有加载任何图像。我试过但得到了同样的结果。App有互联网权限。如果我在中运行和,它们工作得很好,但在我的适配器中不工作。如果我在适配器中使用抽屉,它会起作用。如果我将ImageView替换为TextView,它就能工作。只有使用和失败了,我不知道我错在哪里,任何帮助都将是感激的。这是我的代码: 片段1.xml item_list.xml

  • 问题内容: 我有一个React应用,可以调用我的API,该API返回URL列表以用作imy图像src。 我用来显示图像加载时的加载微调组件。 我有一个变量来确定图像是否正在加载。 我无法弄清楚如何停止显示正在加载的微调器,并在它们全部加载后显示图像。 这是我的代码: Photos.jsx Photo.jsx 我尝试将我的最后一项用于,但是它永远不会被调用,因为由于仍然显示了微调框,所以它从未设置为

  • 我的Build.Gradle文件 UPD.这个简单的应用程序可以加载图片从互联网,但它不能加载图片从我的服务器。我的服务器的一些图片加载得很好,但其他的不是。我已经迷路了

  • 问题内容: 我们正在尝试将 图像预加载 到缓存中,以便稍后加载(图像位于应用程序的 Asset文件夹 中) 我们尝试了什么: 问题:仅当我们尝试加载/显示图像时才对它们进行缓存:必须先将它们加载到内存中,这样它们才能更快地显示出来。 我们还尝试使用GlideModule来增加CacheMemory的大小: 在清单中: 到目前为止没有任何工作。任何想法? 我们尝试使用不可见的1 dp imageVi