[置顶] Android-PickerView系列之介绍与使用篇(一)
2017-02-27 15:27
399 查看
声明:本文为博主原创文章,转载请注明出处:小嵩的博客
支持文字、颜色、大小设置。
支持背景颜色设置。
支持item的分隔线设置。
支持item间距设置。
支持设置是否循环。
支持一、二、三级不联动数据。
支持自定义布局。
支持自定义标题栏。
支持“省,市,区”等选项的单位(label)显示、隐藏和自定义。
支持dialog 模式显示。
支持自定义设置容器。
支持年月日时分秒显示。
支持设置当前默认时间。
支持自定义布局。
支持自定义标题栏。
支持“年,月,日,时,分,秒”等选项的单位(label)显示、隐藏和自定义。
支持dialog 模式显示。
支持自定义设置容器。
其中,WheelView 可在XML布局中直接引用:
或者
简单的两个步骤就能实现功能了,就是这么简单~ 如果默认的样式不符合你的口味,请继续往下看~
如果还是不能满足产品的需求,那么~ 默哀三秒钟… 然后把源代码下载下来自己做改动吧,源代码基本都写了注释了,我也只能帮到这儿了。GitHub项目地址:Android-PickerView
关于方法名和参数的详细说明,请参考Wiki:请戳我查看Wiki文档,欢迎提Issue,提建议,Pull Request.
一、介绍
Android-PickerView是一款仿iOS的PickerView控件,并封装了时间选择和选项选择这两种选择器,详细特性如下:WheelView —— 基础控件
带有3D圆弧效果。支持文字、颜色、大小设置。
支持背景颜色设置。
支持item的分隔线设置。
支持item间距设置。
支持设置是否循环。
OptionsPickerView —— 选项选择器
支持一、二、三级联动数据。支持一、二、三级不联动数据。
支持自定义布局。
支持自定义标题栏。
支持“省,市,区”等选项的单位(label)显示、隐藏和自定义。
支持dialog 模式显示。
支持自定义设置容器。
TimePickerView —— 时间选择器
支持选择年、月、日的范围。支持年月日时分秒显示。
支持设置当前默认时间。
支持自定义布局。
支持自定义标题栏。
支持“年,月,日,时,分,秒”等选项的单位(label)显示、隐藏和自定义。
支持dialog 模式显示。
支持自定义设置容器。
其中,WheelView 可在XML布局中直接引用:
<com.bigkoo.pickerview.lib.WheelView android:id="@+id/wv_options" android:layout_width="match_parent" android:layout_height="wrap_content" />
TimePickerView —— 时间选择器,支持年月日时分,年月日,年月,时分等格式 ,效果如下:
OptionsPickerView —— 选项选择器,支持一,二,三级选项选择,并且可以设置是否联动 ,效果如下:
二、使用
1.添加 Jcenter 仓库 Gradle 依赖:
compile 'com.contrarywind:Android-PickerView:3.x' //注:实际引入请把"3.x"替换成具体版本号,最新版本号请以GitHub上面提供的为准
GitHub的项目官方地址
2.在项目中添加如下代码:
//时间选择器 pvTime = new TimePickerView.Builder(MainActivity.this, new TimePickerView.OnTimeSelectListener() { @Override public void onTimeSelect(Date date,View v) {//选中事件回调 tvTime.setText(getTime(date)); } }) .build(); pvTime.show();
或者
//条件选择器 pvOptions = new OptionsPickerView.Builder(MainActivity.this, new OptionsPickerView.OnOptionsSelectListener() { @Override public void onOptionsSelect(int options1, int option2, int options3 ,View v) { //返回的分别是三个级别的选中位置 String tx = options1Items.get(options1).getPickerViewText() + options2Items.get(options1).get(option2) + options3Items.get(options1).get(option2).get(options3).getPickerViewText(); tvOptions.setText(tx); } }).build(); pvOptions.setPicker(options1Items, options2Items, options3Items); pvOptions.show();
简单的两个步骤就能实现功能了,就是这么简单~ 如果默认的样式不符合你的口味,请继续往下看~
三、自定义样式
pvTime = new TimePickerView.Builder(MainActivity.this, new TimePickerView.OnTimeSelectListener() { @Override public void onTimeSelect(Date date,View v) {//选中事件回调 tvTime.setText(getTime(date)); } }) .setType(TimePickerView.Type.ALL)//默认全部显示 .setCancelText("Cancel")//取消按钮文字 .setSubmitText("Sure")//确认按钮文字 .setContentSize(18)//滚轮文字大小 .setTitleSize(20)//标题文字大小 .setTitleText("Title")//标题文字 .setOutSideCancelable(false)//点击屏幕,点在控件外部范围时,是否取消显示 .isCyclic(true)//是否循环滚动 .setTitleColor(Color.BLACK)//标题文字颜色 .setSubmitColor(Color.BLUE)//确定按钮文字颜色 .setCancelColor(Color.BLUE)//取消按钮文字颜色 .setTitleBgColor(0xFF666666)//标题背景颜色 Night mode .setBgColor(0xFF333333)//滚轮背景颜色 Night mode .setRange(calendar.get(Calendar.YEAR) - 20, calendar.get(Calendar.YEAR) + 20)//默认是1900-2100年 .setDate(new Date())// 默认是系统时间*/ .setLabel("年","月","日","时","分","秒") .build();
pvOptions = new OptionsPickerView.Builder(MainActivity.this, new OptionsPickerView.OnOptionsSelectListener() { @Override public void onOptionsSelect(int options1, int option2, int options3 ,View v) { //返回的分别是三个级别的选中位置 String tx = options1Items.get(options1).getPickerViewText() + options2Items.get(options1).get(option2) + options3Items.get(options1).get(option2).get(options3).getPickerViewText(); tvOptions.setText(tx); } }) .setSubmitText("确定")//确定按钮文字 .setCancelText("取消")//取消按钮文字 .setTitleText("城市选择")//标题 .setSubCalSize(18)//确定和取消文字大小 .setTitleSize(20)//标题文字大小 .setTitleColor(Color.BLACK)//标题文字颜色 .setSubmitColor(Color.BLUE)//确定按钮文字颜色 .setCancelColor(Color.BLUE)//取消按钮文字颜色 .setTitleBgColor(0xFF333333)//标题背景颜色 Night mode .setBgColor(0xFF000000)//滚轮背景颜色 Night mode .setContentTextSize(18)//滚轮文字大小 .setLinkage(false)//设置是否联动,默认true .setLabels("省", "市", "区")//设置选择的三级单位 .setCyclic(false, false, false)//循环与否 .setSelectOptions(1, 1, 1) //设置默认选中项 .setOutSideCancelable(false)//点击外部dismiss default true .build(); pvOptions.setPicker(options1Items, options2Items, options3Items);//添加数据源
四、更多
如果对以上的使用还有疑问的话,可参考demo代码,请戳我查看demo代码如果还是不能满足产品的需求,那么~ 默哀三秒钟… 然后把源代码下载下来自己做改动吧,源代码基本都写了注释了,我也只能帮到这儿了。GitHub项目地址:Android-PickerView
关于方法名和参数的详细说明,请参考Wiki:请戳我查看Wiki文档,欢迎提Issue,提建议,Pull Request.
相关文章推荐
- Android-PickerView系列之介绍与使用篇(一)(省市区选择神器)
- Android-PickerView系列之介绍与使用篇(一)
- Android控件系列之Toast使用介绍
- Android Data Binding 系列 (一) -- 详细介绍与使用
- Android控件系列之CheckBox使用介绍
- [置顶] Android架构组件Lifecycle-Aware介绍及使用
- Android Data Binding 系列(一) -- 详细介绍与使用
- [置顶] Android架构组件Room介绍与使用
- [置顶] Android-PickerView系列之源码解析篇(二)
- Android控件系列之Button以及Android监听器使用介绍
- Android Data Binding 系列(一) -- 详细介绍与使用
- Android WebView系列文章1-关于WebView基本使用介绍
- Android控件系列之TextView使用介绍
- Android进阶——多线程系列之四大线程池的使用介绍
- Android Data Binding 系列(一) -- 详细介绍与使用
- Android控件系列之XML静态资源使用介绍
- Android深入浅出系列课程---Lesson4-AAF110429_介绍Manifest文件的使用
- [置顶] Android架构组件ViewModel和LiveData介绍及使用
- OrmLite For Android 学习笔记 之一 Ormlite 介绍及使用
- Spring系列之三——Spring体验中IOC使用的介绍