(ConstraintLayout is recommended)
-
Add expandingprogressbar.megapho.com.expandingprogressbar.ExpandingProgressBar to your layout. Make sure to have width and height equal to match_parent or it's ConstraintLayout equivalent match_constraint(0dp)
<expandingprogressbar.megapho.com.expandingprogressbar.ExpandingProgressBar android:id="@+id/epb" android:layout_width="0dp" android:layout_height="0dp" android:background="@color/background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> -
Programmatically start ExpandingProgressBar whenever needed, and don't forget to set onExpandedListener if needed!
final ExpandingProgressBar expandedProgressBar = findViewById(R.id.epb); expandedProgressBar.start(); expandedProgressBar.setOnExpandListener(new ExpandingProgressBar.onExpandListener() { @Override public void preExpand() { } @Override public void postExpand() { } }); -
When the progressBar needs to start the expand animation just call
expandedProgressBar.expand(); -
Extra steps! Customizing view
Customizable attributes:
- radius: ProgressBar circle radius.
- color: Color of progress bar and start of expand.
- color_gradient: Second color of expand animation.
- rotation_speed: Speed of rotation of circular progress bar.
- stroke_width: Width of progress bar arches.
- top_percentage: Sets top percentage from the top of progress bar.
- gravity: Sets horizontal position of progress bar.
Example:
<expandingprogressbar.megapho.com.expandingprogressbar.ExpandingProgressBar android:id="@+id/epb" android:layout_width="0dp" android:layout_height="0dp" android:background="@color/background" android:gravity="start" app:radius="50dp" app:color="#ffbd5b" app:color_gradient="#feab50" app:rotation_speed="7" app:stroke_width="4dp" app:top_percentage="0.4" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> If you want to add a view on top of the progress bar what I recommend is to add a guideline at roughly the same top_percentage as your ExpandingProgressBar, like so
<android.support.constraint.Guideline android:id="@+id/guideline1" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" app:layout_constraintGuide_percent="0.77" /> <expandingprogressbar.megapho.com.expandingprogressbar.ExpandingProgressBar android:id="@+id/epb" android:layout_width="0dp" android:layout_height="0dp" android:background="@color/background" app:top_percentage="0.8" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/tv_loading" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintBottom_toTopOf="@id/guideline1" android:text="@string/loading" /> 