Back to project page WheelView.
The source code is released under:
Apache License
If you think the Android project WheelView listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.lukedeighton.wheelsample; //www. j a v a 2s. c om import android.app.Activity; import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; import android.graphics.drawable.ShapeDrawable; import android.graphics.drawable.shapes.OvalShape; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; import com.lukedeighton.wheelview.WheelView; import com.lukedeighton.wheelview.adapter.WheelArrayAdapter; import java.util.ArrayList; import java.util.List; import java.util.Map; public class MainActivity extends Activity { private static final int ITEM_COUNT = 20; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WheelView wheelView = (WheelView) findViewById(R.id.wheelview); //create data for the adapter List<Map.Entry<String, Integer>> entries = new ArrayList<Map.Entry<String, Integer>>(ITEM_COUNT); for(int i = 0; i < ITEM_COUNT; i++) { Map.Entry<String, Integer> entry = MaterialColor.random(this, "\\D*_500$"); entries.add(entry); } //populate the adapter, that knows how to draw each item (as you would do with a ListAdapter) wheelView.setAdapter(new MaterialColorAdapter(entries)); //a listener for receiving a callback for when the item closest to the selection angle changes wheelView.setOnWheelItemSelectedListener(new WheelView.OnWheelItemSelectListener() { @Override public void onWheelItemSelected(WheelView parent, int position) { //get the item at this position Map.Entry<String, Integer> selectedEntry = ((MaterialColorAdapter) parent.getAdapter()).getItem(position); parent.setSelectionColor(getContrastColor(selectedEntry)); } }); wheelView.setOnWheelItemClickListener(new WheelView.OnWheelItemClickListener() { @Override public void onWheelItemClick(WheelView parent, int position, boolean isSelected) { String msg = String.valueOf(position) + " " + isSelected; Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } }); //initialise the selection drawable with the first contrast color wheelView.setSelectionColor(getContrastColor(entries.get(0))); } //get the materials darker contrast private int getContrastColor(Map.Entry<String, Integer> entry) { String colorName = MaterialColor.getColorName(entry); return MaterialColor.getContrastColor(colorName); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } static class MaterialColorAdapter extends WheelArrayAdapter<Map.Entry<String, Integer>> { MaterialColorAdapter(List<Map.Entry<String, Integer>> entries) { super(entries); } @Override public Drawable getDrawable(int position) { Drawable[] drawable = new Drawable[] { createOvalDrawable(getItem(position).getValue()), new TextDrawable(String.valueOf(position)) }; return new LayerDrawable(drawable); } private Drawable createOvalDrawable(int color) { ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape()); shapeDrawable.getPaint().setColor(color); return shapeDrawable; } } }