一、介绍

Android-PickerView是一款仿iOS的PickerView控件,并封装了时间选择和选项选择这两种选择器,详细特性如下:

WheelView —— 基础控件带有3D圆弧效果。

支持文字、颜色、大小设置。

支持背景颜色设置。

支持item的分隔线设置。

支持item间距设置。

支持设置是否循环。

OptionsPickerView —— 选项选择器支持一、二、三级联动数据。

支持一、二、三级不联动数据。

支持自定义布局。

支持自定义标题栏。

支持“省,市,区”等选项的单位(label)显示、隐藏和自定义。

支持dialog 模式显示。

支持自定义设置容器。

TimePickerView —— 时间选择器支持选择年、月、日的范围。

支持年月日时分秒显示。

支持设置当前默认时间。

支持自定义布局。

支持自定义标题栏。

支持“年,月,日,时,分,秒”等选项的单位(label)显示、隐藏和自定义。

支持dialog 模式显示。

支持自定义设置容器。

其中,WheelView 可在XML布局中直接引用:

android:id="@+id/wv_options"

android:layout_width="match_parent"

android:layout_height="wrap_content" />1234

TimePickerView —— 时间选择器,支持年月日时分,年月日,年月,时分等格式 ,效果如下:

AAffA0nNPuCLAAAAAElFTkSuQmCC

OptionsPickerView —— 选项选择器,支持一,二,三级选项选择,并且可以设置是否联动 ,效果如下:

AAffA0nNPuCLAAAAAElFTkSuQmCC

二、使用

1.添加 Jcenter 仓库 Gradle 依赖:compile 'com.contrarywind:Android-PickerView:3.x'//注:实际引入请把"3.x"替换成具体版本号,最新版本号请以GitHub上面提供的为准12

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();123456789

或者//条件选择器

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(); 12345678910111213

简单的两个步骤就能实现功能了,就是这么简单~ 如果默认的样式不符合你的口味,请继续往下看~

三、自定义样式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();1234567891011121314151617181920212223pvOptions = 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);//添加数据源1234567891011121314151617181920212223242526272829

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐