2 ответов:
вы можете попробовать этот Круг Прогресса библиотека
Примечание: пожалуйста, всегда используйте ту же ширину и высоту для просмотра прогресса
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