studio progressbar personalizar indeterminate ejemplo color bar android android-progressbar

personalizar - ¿Cómo crear ProgressBar circular en Android?



progressbar android circle (2)

Puedes probar esta biblioteca Circle Progress

Nota: utilice siempre el mismo ancho y alto para las vistas de progreso

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"/>

¿Tienes alguna idea de cómo hacer una barra de progreso circular como la de la aplicación Google Fit? Me gusta la imagen de abajo.


Es fácil crear esto usted mismo

En su diseño, incluya la siguiente ProgressBar con un dibujo específico ( tenga en cuenta que debe obtener el ancho de las dimensiones ). El valor máximo es importante aquí:

<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" />

Ahora cree el dibujo en sus recursos con la siguiente forma. Juega con el radio (puedes usar innerRadius lugar de innerRadiusRatio ) y los valores de grosor.

circular (Pre Lollipop O Nivel API <21)

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

circular (> = Lollipop O Nivel API> = 21)

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

useLevel es "falso" de forma predeterminada en el nivel 21 de API (Lollipop).

Iniciar animación

A continuación, en su código, use un ObjectAnimator para animar el campo de progreso de ProgessBar de su diseño.

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();

Detener la animación

progressBar.clearAnimation();

PD: a diferencia de los ejemplos anteriores, ofrece una animación suave.