Home

Awesome

License APK Android Arsenal

Step Bar View

You can use this library to have a step bar.

It can be used in pages that you have some steps to reach.

You can download the Demo apk file (you can first adjust your StepBar in the demoApp and then implement it in code).

<img src="./repo_files/images/demoo.gif" width="300">

1 - Getting Started

By these instructions you can add this library and I will explain how to use it.

Add Maven to your root build.gradle

First of all add it in your root build.gradle at the end of the repositories:

allprojects {
  repositories {
    ...
    maven { url 'https://jitpack.io' }
  }
}

Add Dependency

Add the dependency to your app build.gradle file.

dependencies
{
    implementation  'com.github.imaNNeoFighT:StepBarView:1.1.0'
    // Or in older versions : 
    // compile'com.github.imaNNeoFighT:StepBarView:1.1.0'
}

And then sync your gradle and have a cup of tea.

2 - About The View

You can simply use this View like other Views in android, just add StepBarView in your java code or xml.

View Properties

You can customize StepBarView. All of this attributes can be changed via xml or code (runtime).

AttributeTypeKotlinDescription
sbv_max_countIntegermaxCountyour steps count (max to reach), default value is 8
sbv_steps_reached_colorsColorstepsReachedColorsteps reached color (steps circle reached color)
sbv_steps_unreached_colorsColorstepsUnreachedColorsteps unReached color (steps circle default color)
sbv_steps_line_reached_colorsColorstepsLineReachedColorsteps line reached color
sbv_steps_line_unreached_colorsColorstepsLineUnreachedColorsteps line uReached color
sbv_steps_line_heightDimensionsstepsLineHeightsteps line height, default value is 4dp
sbv_steps_sizeDimensionsstepsSizesteps circle size, default value is 16dp
sbv_steps_text_colorColorstepsTextColorsteps text color (number that drawn on steps circle)
sbv_steps_text_sizeDimensionsstepsTextSizesteps text size, default is 14sp
sbv_steps_line_margin_leftDimensionsstepsLineMarginLeftsteps line margin left (gap in left of lines), default value is 2dp
sbv_steps_line_margin_rightDimensionsstepsLineMarginRightsteps line margin right (gap in right of lines), default value is 2dp
sbv_allow_touch_step_toIntegerallowTouchStepToallow touch to reach step (for example if you set 3 you can touch to reach step to 3 and not more), default value is 8
sbv_show_step_indexBooleanshowStepIndexyou can set this property false to prevent showing indexes (then just a solid circle will be drawn), default value is true
sbv_steps_stroke_sizeDimensionsstepsStrokeSizeStroke Size of steps , default value is 2dp
sbv_steps_stroke_reached_colorColorstepsStrokeReachedColorStroke color of reached steps
sbv_steps_stroke_unreached_colorColorstepsStrokeUnReachedColorStroke color of unReached steps
sbv_steps_stroke_current_colorColorstepsStrokeCurrentColorStroke color of current steps
sbv_show_step_strokeBooleanshowStepStrokeflag to showing the Stroke or not!, default is false
sbv_is_rtlBooleanisRtlflag to showing steps in RTL (Right to left), default is false
sbv_show_step_nameBooleanshowStepNameflag to show title below the steps, default is false
sbv_is_fixed_steps_line_widthBooleanisFixedStepsLineWidthflag to specify that the line widths is fixed or it should calculate depends on View width (use it when you want to achieve scrollable view)
sbv_steps_line_widthDimensionsstepsLineWidthsteps line width, default value is 24dp, it will ignored when isFixedStepsLineWidth is false

3 - Some Samples

Scrollable Sample

To achieve scrollable View just set isFixedStepsLineWidth : true, and put this view inside a HorizontalScrollView,

just like this:

<img src="./repo_files/images/scrollable_sample.gif" width="300">
<HorizontalScrollView
        android:id="@+id/stepBar3Container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@id/my_stepBarView2"
        app:layout_constraintBottom_toTopOf="@+id/my_stepBarView4"
        android:scrollbarSize="0dp"
        >

        <ir.neo.stepbarview.StepBarView
            android:id="@+id/my_stepBarView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:sbv_steps_size="28dp"
            app:sbv_steps_reached_colors="#fff"
            app:sbv_steps_line_reached_colors="#fff"
            app:sbv_steps_line_unreached_colors="#dbcecece"
            app:sbv_steps_unreached_colors="#dbcecece"
            app:sbv_steps_text_color="#f0f"
            app:sbv_max_count="15"
            android:paddingLeft="24dp"
            android:paddingRight="24dp"
            android:background="#f0f"
            android:paddingTop="8dp"
            android:paddingBottom="8dp"
            app:sbv_is_fixed_steps_line_width="true"
            app:sbv_steps_line_width="80dp"
            />

</HorizontalScrollView>

License

Copyright 2018 Iman Khoshabi

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.