Ever wanted Sleek-n-Sexy UI components like Apple’s iPhone/iPad?
Now you can with Android-Wheel – the sexy WheelPicker for Android:
Android-Wheel: http://code.google.com/p/android-wheel/
It comes with a handy ScrollListener for listen to touch events on the wheel component. Yah …..C-A-S-I-N-O!
Download: TestWheel.zip
Some Notes:
- Sometimes you need to adjust the wheel width..I know I had to do this to prevent text from overflowing ..and the wheels rolling off…I think WheelView.java is where it at!
- res/drawables – contains the styles/gradients etc.
The Application:
The Code:
import kankan.wheel.widget.ArrayWheelAdapter; import kankan.wheel.widget.OnWheelChangedListener; import kankan.wheel.widget.OnWheelScrollListener; import kankan.wheel.widget.WheelView; import android.app.Activity; import android.os.Bundle; import android.widget.EditText; import android.widget.TextView; public class Main extends Activity { // TODO: Externalize string-array String wheelMenu1[] = new String[]{"Right Arm", "Left Arm", "R-Abdomen", "L-Abdomen", "Right Thigh", "Left Thigh"}; String wheelMenu2[] = new String[]{"Upper", "Middle", "Lower"}; String wheelMenu3[] = new String[]{"R", "L"}; // Wheel scrolled flag private boolean wheelScrolled = false; private TextView text; private EditText text1; private EditText text2; private EditText text3; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.empty_layout); initWheel1(R.id.p1); initWheel2(R.id.p2); initWheel3(R.id.p3); text1 = (EditText) this.findViewById(R.id.r1); text2 = (EditText) this.findViewById(R.id.r2); text3 = (EditText) this.findViewById(R.id.r3); text = (TextView) this.findViewById(R.id.result); } // Wheel scrolled listener OnWheelScrollListener scrolledListener = new OnWheelScrollListener() { public void onScrollStarts(WheelView wheel) { wheelScrolled = true; } public void onScrollEnds(WheelView wheel) { wheelScrolled = false; updateStatus(); } }; // Wheel changed listener private final OnWheelChangedListener changedListener = new OnWheelChangedListener() { public void onChanged(WheelView wheel, int oldValue, int newValue) { if (!wheelScrolled) { updateStatus(); } } }; /** * Updates entered PIN status */ private void updateStatus() { text1.setText(wheelMenu1[getWheel(R.id.p1).getCurrentItem()]); text2.setText(wheelMenu2[getWheel(R.id.p2).getCurrentItem()]); text3.setText(wheelMenu3[getWheel(R.id.p3).getCurrentItem()]); text.setText(wheelMenu1[getWheel(R.id.p1).getCurrentItem()] + " - " + wheelMenu2[getWheel(R.id.p2).getCurrentItem()] + " - " + wheelMenu3[getWheel(R.id.p3).getCurrentItem()]); } /** * Initializes wheel * * @param id * the wheel widget Id */ private void initWheel1(int id) { WheelView wheel = (WheelView) findViewById(id); wheel.setAdapter(new ArrayWheelAdapter(wheelMenu1)); wheel.setVisibleItems(2); wheel.setCurrentItem(0); wheel.addChangingListener(changedListener); wheel.addScrollingListener(scrolledListener); } private void initWheel2(int id) { WheelView wheel = (WheelView) findViewById(id); wheel.setAdapter(new ArrayWheelAdapter(wheelMenu2)); wheel.setVisibleItems(2); wheel.setCurrentItem(0); wheel.addChangingListener(changedListener); wheel.addScrollingListener(scrolledListener); } private void initWheel3(int id) { WheelView wheel = (WheelView) findViewById(id); wheel.setAdapter(new ArrayWheelAdapter(wheelMenu3)); wheel.setVisibleItems(2); wheel.setCurrentItem(0); wheel.addChangingListener(changedListener); wheel.addScrollingListener(scrolledListener); } /** * Returns wheel by Id * * @param id * the wheel Id * @return the wheel with passed Id */ private WheelView getWheel(int id) { return (WheelView) findViewById(id); } /** * Tests wheel value * * @param id * the wheel Id * @param value * the value to test * @return true if wheel value is equal to passed value */ private int getWheelValue(int id) { return getWheel(id).getCurrentItem(); } }
Hi,
I’d like to reproduce your example,
the layout file is missing could you please provide it to me ?
Hi Jarrek.
Update provided with download link
-W
dear wagied what can i do if my computer don’t want work or something sometimes with cam?
Uploaded complete project file available for download!
Kudos to kankan for developing a great component!
That’s a nice tool! Thanks
Is there a way to populate spinner with a database info and then display database content
Hi !
How do you change speed wheel’s rotation ?
Ty
Nice but provide a zip file for the beginner.
1 Pingback
GOOGLE
Recent Posts
Archives
Categories
Meta