All Projects → sephiroth74 → Androidwheel

sephiroth74 / Androidwheel

Custom wheel widget for android

Programming Languages

java
68154 projects - #9 most used programming language

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].