Как создать круговой ProgressBar в android? [закрытый]



есть ли у вас какие-либо идеи, как сделать круговой индикатор выполнения, как один из приложений Google Fit? Как на картинке ниже.



enter image description here

764   2  

2 ответов:

вы можете попробовать этот Круг Прогресса библиотека

enter image description here

enter image description here

Примечание: пожалуйста, всегда используйте ту же ширину и высоту для просмотра прогресса

DonutProgress:

 <com.github.lzyzsd.circleprogress.DonutProgress
        android:id="@+id/donut_progress"
        android:layout_marginLeft="50dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        custom:circle_progress="20"/>

CircleProgress:

  <com.github.lzyzsd.circleprogress.CircleProgress
        android:id="@+id/circle_progress"
        android:layout_marginLeft="50dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        custom:circle_progress="20"/>

ArcProgress:

<com.github.lzyzsd.circleprogress.ArcProgress
        android:id="@+id/arc_progress"
        android:background="#214193"
        android:layout_marginLeft="50dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        custom:arc_progress="55"
        custom:arc_bottom_text="MEMORY"/>

это легко создать это самостоятельно

в вашем макете включите следующее ProgressBar С ОПРЕДЕЛЕННЫМ drawable (Примечание Вы должны получить ширину от размеров вместо). Здесь важно максимальное значение:

<ProgressBar
    android:id="@+id/progressBar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:max="500"
    android:progress="0"
    android:progressDrawable="@drawable/circular" />

Теперь создайте drawable в ваших ресурсах со следующей формой. Играть с радиусом (вы можете использовать innerRadius вместо innerRadiusRatio) и значений толщины.

круговой (предварительно леденец или Уровень API

   <shape
        android:innerRadiusRatio="2.3"
        android:shape="ring"
        android:thickness="3.8sp" >
        <solid android:color="@color/yourColor" />
   </shape>

круговой (>=леденец или уровень API >= 21)

    <shape
        android:useLevel="true"
        android:innerRadiusRatio="2.3"
        android:shape="ring"
        android:thickness="3.8sp" >
        <solid android:color="@color/yourColor" />
     </shape>

useLevel и "ложные" по умолчанию в API Level 21 (Lollipop) .

Запустить Анимацию

далее в коде использовать ObjectAnimator для анимации поля прогресса ProgessBar вашего макета.

ProgressBar progressBar = (ProgressBar) view.findViewById(R.id.progressBar);
ObjectAnimator animation = ObjectAnimator.ofInt(progressBar, "progress", 0, 500); // see this max value coming back here, we animate towards that value
animation.setDuration(5000); // in milliseconds
animation.setInterpolator(new DecelerateInterpolator());
animation.start();

остановить Анимация

progressBar.clearAnimation();

С. П. В отличие от приведенных выше примеров, это дает плавную анимацию.

Comments

    Ничего не найдено.