我正在尝试创建一个圆形的进度条.这就是我想要实现的目标
有一个灰色背景环.在它的顶部,出现一个蓝色进度条,它在60或几秒钟内以0到360的圆形路径移动.

这是我的示例代码.
<ProgressBar
android:id="@+id/ProgressBar"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="?android:attr/progressBarStyleLarge"
android:indeterminateDrawable="@drawable/progressBarBG"
android:progress="50"
/>
Run Code Online (Sandbox Code Playgroud)
为此,在drawable"progressBarBG"中,我创建了一个图层列表,在该图层列表中,我给出了两个项目,如图所示.
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape
android:shape="ring"
android:innerRadius="64dp"
android:thickness="8dp"
android:useLevel="false">
<solid android:color="@color/grey" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape
android:shape="ring"
android:innerRadius="64dp"
android:thickness="8dp"
android:useLevel="false">
<solid android:color="@color/blue" />
</shape>
</clip>
</item>
Run Code Online (Sandbox Code Playgroud)
现在,第一个灰色环很好.然而,蓝色环从drawable的左侧开始向右移动,就像线性进度条的工作原理一样.这是它显示50%进度的方式,红色箭头显示方向.

我想按预期在圆形路径中移动蓝色进度条.
我正在尝试插入一个通用加载圈作为占位符,同时图像正在加载像Glide或Picasso这样的图像加载器库.
我不能为我的生活找到你应该如何从xml创建一个旋转drawable.
我尝试通过创建动画列表在XML中使用AnimationDrawable,但它甚至没有显示(甚至不是静态的).
我只想要一个简单的圆圈,它可以自动旋转,所有这些都在xml drawable中,所以我可以将id作为占位符传递给我的图像加载器.如果那不可能请现在告诉我,所以我可以节省很多研究:)
编辑:一些代码使它更清晰,我需要一个旋转drawable这个Glide命令:
Glide.with(context)
.load(imageUrl)
.into(imageView)
.placeHolder(R.drawable.spinning_loading_placeholder);
Run Code Online (Sandbox Code Playgroud)
在加载图像时,将显示占位符drawable,稍后将显示图像.我需要一个能够自行旋转的抽屉.
我有一个 RecyclerView,它使用 Glide 从 URL 加载图像。现在,使用分页从 Firebase 检索 URL,如下所示。问题是,当 MainActivity(包含以下代码和 recyclerview)首次初始化时,UI 中存在很大的延迟(滚动非常缓慢且断断续续,选项菜单需要 3 秒才能打开等),并且图像需要一段时间才能显示出来。加载时。当我向下滚动并到达第一页数据的 RecyclerView 末尾后,OnScrollListener 被触发,我开始从新查询加载新数据。我已经尽力根据我发表的另一篇文章中的用户建议来优化 Glide 的功能,并且我也将其设置adapter.setHasFixedSize为 true,但运气不佳。知道这里发生了什么吗?尽管查询是异步的,但我是否以某种方式挂起 UI 线程?
编辑 :Glide 是否会由于必须将多个图像加载到回收器视图的 imageViews 中而导致主线程上的滞后?如果是这样,我能做什么来应对呢?
以下是我处理从 Firebase 获取的数据的分页并通知适配器的方法:
class MainActivity : AppCompatActivity() {
private val TAG: String = MainActivity::class.java.simpleName // Tag used for debugging
private var queryLimit : Long = 50 // how many documents should the query request from firebase
private lateinit var iconsRCV : RecyclerView // card icons recycler view
private lateinit var lastVisible:DocumentSnapshot …Run Code Online (Sandbox Code Playgroud) android android-recyclerview android-glide google-cloud-firestore