2019独角兽企业重金招聘Python工程师标准>>>
项目下载地址:http://download.csdn.net/detail/qq_35352552/9886010
可旋转的菜单轮盘
偶然在GitHub上看到的控件感觉不错这里简单介绍一下
首先导入依赖
compile 'com.github.lukedeighton:wheelview:0.4.1'
页面布局
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
app:repeatItems="true"
app:rotatableWheelDrawable="false"
app:selectionAngle="90.0"
app:wheelColor="#ff0"
app:wheelItemCount="14"
app:wheelItemRadius="43dp"
app:wheelOffsetY="60dp"
app:wheelPadding="13dp"
app:wheelPosition="bottom"
app:wheelRadius="276dp"/>
上面有该自定义View的 属性含义,自己理解的,当然可以自己测试一下...
首先我们要两个集合 一个数据,一个图片
final List
entries.add("1");
entries.add("2");
entries.add("3");
entries.add("4");
entries.add("5");
final List
imgList.add(getResources().getDrawable(R.mipmap.i1));
imgList.add(getResources().getDrawable(R.mipmap.i2));
imgList.add(getResources().getDrawable(R.mipmap.i3));
imgList.add(getResources().getDrawable(R.mipmap.i4));
imgList.add(getResources().getDrawable(R.mipmap.i5));
然后设置一个wheeladapter类似于你将与ListView一个适配器集
// 设置一个wheeladapter类似于你将与ListView一个适配器集
wheelView.setAdapter(new WheelAdapter() {
@Override
public Drawable getDrawable(int position) {
return imgList.get(position);
}
@Override
public int getCount() {
return imgList.size();
}
});
* 注意:这里的wheeladapter没有ListView - Adapter的机制 如果需要添加新的数据 需要重新设置。
接下来是设置监听
1. 监听选中的条目变化
wheelView.setOnWheelItemSelectedListener(new WheelView.OnWheelItemSelectListener() {
@Override
public void onWheelItemSelected(WheelView parent, Drawable itemDrawable, int position) {
}
});
2. 监听选中条目
// 选中的图片
wheelView.setOnWheelItemClickListener(new WheelView.OnWheelItemClickListener() {
@Override
public void onWheelItemClick(WheelView parent, int position, boolean isSelected) {
wheelView.setSelected(position);
Log.e("----", "" + position);
}
});
3. 监听角度改变
wheelView.setOnWheelAngleChangeListener(new WheelView.OnWheelAngleChangeListener() {
@Override
public void onWheelAngleChange(float angle) {
}
});
下面是完整的代码
/**
* 作者:CoolTone
* 描述:可旋转的滚轮菜单
*/
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final WheelView wheelView = (WheelView) findViewById(R.id.wheelview);
final List
entries.add("1");
entries.add("2");
entries.add("3");
entries.add("4");
entries.add("5");
final List
imgList.add(getResources().getDrawable(R.mipmap.i1));
imgList.add(getResources().getDrawable(R.mipmap.i2));
imgList.add(getResources().getDrawable(R.mipmap.i3));
imgList.add(getResources().getDrawable(R.mipmap.i4));
imgList.add(getResources().getDrawable(R.mipmap.i5));
// 设置一个wheeladapter类似于你将与ListView一个适配器集
wheelView.setAdapter(new WheelAdapter() {
@Override
public Drawable getDrawable(int position) {
return imgList.get(position);
}
@Override
public int getCount() {
return imgList.size();
}
});
// 监听选中的图片
wheelView.setOnWheelItemClickListener(new WheelView.OnWheelItemClickListener() {
@Override
public void onWheelItemClick(WheelView parent, int position, boolean isSelected) {
wheelView.setSelected(position);
Log.e("----", "" + position);
}
});
}
}
以上就是自定义的滚轮菜单选择器了...