如何重新创建进度栏旋转?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何重新创建进度栏旋转?相关的知识,希望对你有一定的参考价值。

如何重新创建类型为ProgressBarprogressBarStyleLarge的旋转?

我有这种布局:

<androidx.core.widget.ContentLoadingProgressBar
    android:id="@+id/loadingIndicator"
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:indeterminateDrawable="@drawable/loadingindicator"
    style="?android:attr/progressBarStyleLarge" />

可绘制loadingindicator

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="0"
    android:toDegrees="360" >

    <shape
        android:innerRadiusRatio="3"
        android:shape="ring"
        android:thicknessRatio="40"
        android:useLevel="false" >

        <size
            android:height="48dip"
            android:width="48dip" />

        <gradient
            android:startColor="#ff00ff"
            android:centerColor="#ff00ff"
            android:endColor="#ffffff"
            android:centerY="0.50"
            android:type="sweep"
            android:useLevel="false" />
    </shape>

</rotate>

但是这会导致平滑的恒定旋转,而不是-我相信-以默认样式显示的2个平行旋转。

特别是我想重新创建Indeterminate circular progress indicator的动画,如下所示:https://material.io/components/progress-indicators/#circular-progress-indicators

XY问题披露:我需要这个,因为我想自定义ProgressBar的笔触粗细和外部边缘。

答案

您可以在代码中使用CircularProgressDrawable,例如:

以上是关于如何重新创建进度栏旋转?的主要内容,如果未能解决你的问题,请参考以下文章

在recyclerview片段Reandroid中屏幕旋转后进度条不显示

重新创建片段布局

Asynctask结果显示重新创建片段后

BottomNavigationView - 如何避免重新创建片段并重用它们

使用 ActionBar 旋转 Android 的双片段

当我旋转屏幕时,progressDialog 停止更新