Custom wheel widget for android
Java
Latest commit 355bd0f Oct 25, 2012 @sephiroth74 updated readme

README.md

Wheel widget for Android

To include the wheel widget in the current layout, you should add in the layout xml this lines:

        <it.sephiroth.android.wheel.view.Wheel
            android:id="@+id/wheel"
            xmlns:sephiroth="http://schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            sephiroth:numRotations="6"
            sephiroth:ticks="28" />

Where numRotations is the max number of rotations the wheel can perform and ticks is the total number of ticks the wheel will display.

In your activity you can add a OnScrollListener listener to the wheel widget, in this way:

    mWheel = (Wheel) findViewById( R.id.wheel );
    mWheel.setOnScrollListener( new OnScrollListener() {

        @Override
        public void onScrollStarted( Wheel view, float value, int roundValue ) {
        }

        @Override
        public void onScrollFinished( Wheel view, float value, int roundValue ) {
        }

        @Override
        public void onScroll( Wheel view, float value, int roundValue ) {
        }
    } );

Where float value is a value between -1.0 and 1.0 of the current indicator position and int roundValue is a value between -(ticksnumRotations) and (ticksnumRotations)

Change the Wheel value

The wheel position and value chan be changed programmatically at runtime using the Wheel's method setValue:

public void setValue( float value, boolean fireScrollEvent );
  • value is the new wheel value, a float between -1.0f and 1.0f, where 0.0f it's the center of the wheel.
  • fireScrollEvent: if true, once this method is called the onScrollFinished method will be called.

Screen Shots

Wheel running on ICS