Skip to content

Commit 713b198

Browse files
authored
Update README.md
1 parent 0269adf commit 713b198

File tree

1 file changed

+134
-41
lines changed

1 file changed

+134
-41
lines changed

README.md

Lines changed: 134 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
##(原作者[saiwu-bigkoo](https://github.com/saiwu-bigkoo)吴哥已经转行了,他已把项目转交给我维护,所以我会继续更新优化,不能白白荒废了,欢迎Pull Request,提issue。有兴趣的小伙伴可以加入QQ群:387051294 讨论交流)
1+
#### [English Document](https://github.com/Bigkoo/Android-PickerView/blob/master/README-en.md)
2+
3+
4+
(原作者[saiwu-bigkoo](https://github.com/saiwu-bigkoo)吴哥已经转行了,他已把项目转交给我维护,所以我会继续更新优化,不能白白荒废了,欢迎Pull Request,提issue。有兴趣的小伙伴可以加入QQ群:387051294 讨论交流)
25

36

47
## 介绍
@@ -21,14 +24,11 @@
2124

2225
## 有兴趣研究3D滚轮效果的实现机制,希望把源码研究透彻的可以看看这篇[Android-PickerView系列之源码解析篇(二)](http://blog.csdn.net/qq_22393017/article/details/59488906)
2326

24-
## 说明文档 Documentation(还在持续更新中)
25-
### [English Documentation](https://github.com/Bigkoo/Android-PickerView/wiki/English-Documentation)
2627

2728
### [中文说明文档(3.x版)](https://github.com/Bigkoo/Android-PickerView/wiki/%E4%B8%AD%E6%96%87%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3%EF%BC%883.x%E7%89%88%EF%BC%89)
2829

2930
### [旧版本(2.x/1.x版)中文说明文档](https://github.com/Bigkoo/Android-PickerView/wiki/%E6%97%A7%E9%A1%B9%E7%9B%AE%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3%EF%BC%88old-version-1.x-2.x%E7%89%88%E6%9C%AC%EF%BC%89)
3031

31-
3232
## V3.1.1版本更新说明(2017-3-15)
3333
* 修复:timePicker的label单位设置为空,但隐藏无效问题
3434

@@ -40,58 +40,35 @@
4040
* 优化:多分辨率适配,修复低分辨率手机下显示偏差问题
4141
* 优化:将系统返回键点击事件封装到BasePickerView,免去在Activity中重写onKeyDown方法。
4242

43-
## V3.0.8版本更新说明(2017-3-7)
44-
* 修复timepicker只能在初始化时设置一次默认选中时间的问题
45-
46-
## V3.0.7版本更新说明(2017-3-4)
47-
* 优化 起始终止年月日范围设置
48-
* 新增自定义布局
49-
50-
## V3.0.6版本更新说明(2017-3-3)
51-
* 新增对话框模式
52-
* 新增timePicker “年月日时分”显示类型
53-
* 新增分隔线的显示类型选择(FILL、WARP)
54-
* 新增options默认选中项的调用方法(可重复设置);
55-
* 优化选中项显示位置有微小偏差问题
56-
5743
### 历史版本更新说明请查看Wiki
5844

5945

60-
# How to use
46+
### 方法名与参数请看这里:[方法名与参数说明文档](https://github.com/Bigkoo/Android-PickerView/wiki/%E6%96%B9%E6%B3%95%E5%90%8D%E4%B8%8E%E5%8F%82%E6%95%B0)
47+
## **使用步骤:**
6148

62-
63-
### Gradle
64-
```java
65-
compile 'com.contrarywind:Android-PickerView:3.1.1'
66-
//compile 'com.bigkoo:pickerview:lunar.1.0' Lunar Branch 农历分支
67-
```
68-
OR
69-
### Maven
49+
### 1.添加Jcenter仓库 Gradle依赖:
7050
```java
71-
<dependency>
72-
<groupId>com.contrarywind</groupId>
73-
<artifactId>Android-PickerView</artifactId>
74-
<version>3.1.1</version>
75-
<type>pom</type>
76-
</dependency>
51+
compile 'com.contrarywind:Android-PickerView:3.1.0'
7752
```
7853

54+
### 2.在Activity中添加如下代码:
7955

80-
## Sample usage:
8156
```java
82-
//TimePicker
83-
pvTime = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() {
57+
//时间选择器
58+
TimePickerView pvTime = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() {
8459
@Override
8560
public void onTimeSelect(Date date,View v) {//选中事件回调
8661
tvTime.setText(getTime(date));
8762
}
8863
})
8964
.build();
65+
pvTime.setDate(Calendar.getInstance());//注:根据需求来决定是否使用该方法(一般是精确到秒的情况),此项可以在弹出选择器的时候重新设置当前时间,避免在初始化之后由于时间已经设定,导致选中时间与当前时间不匹配的问题。
9066
pvTime.show();
67+
```
9168

92-
93-
//OptionsPicker
94-
pvOptions = new OptionsPickerView.Builder(this, new OptionsPickerView.OnOptionsSelectListener() {
69+
```java
70+
//条件选择器
71+
OptionsPickerView pvOptions = new OptionsPickerView.Builder(this, new OptionsPickerView.OnOptionsSelectListener() {
9572
@Override
9673
public void onOptionsSelect(int options1, int option2, int options3 ,View v) {
9774
//返回的分别是三个级别的选中位置
@@ -104,9 +81,125 @@ OR
10481
pvOptions.setPicker(options1Items, options2Items, options3Items);
10582
pvOptions.show();
10683
```
84+
### 大功告成~
85+
86+
### 3.如果默认样式不符合你的口味,可以自定义各种属性:
87+
```java
88+
Calendar selectedDate = Calendar.getInstance();
89+
Calendar startDate = Calendar.getInstance();
90+
startDate.set(2013,1,1);
91+
Calendar endDate = Calendar.getInstance();
92+
endDate.set(2020,1,1);
93+
94+
pvTime = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() {
95+
@Override
96+
public void onTimeSelect(Date date,View v) {//选中事件回调
97+
tvTime.setText(getTime(date));
98+
}
99+
})
100+
.setType(TimePickerView.Type.ALL)//默认全部显示
101+
.setCancelText("Cancel")//取消按钮文字
102+
.setSubmitText("Sure")//确认按钮文字
103+
.setContentSize(18)//滚轮文字大小
104+
.setTitleSize(20)//标题文字大小
105+
.setTitleText("Title")//标题文字
106+
.setOutSideCancelable(false)//点击屏幕,点在控件外部范围时,是否取消显示
107+
.isCyclic(true)//是否循环滚动
108+
.setTitleColor(Color.BLACK)//标题文字颜色
109+
.setSubmitColor(Color.BLUE)//确定按钮文字颜色
110+
.setCancelColor(Color.BLUE)//取消按钮文字颜色
111+
.setTitleBgColor(0xFF666666)//标题背景颜色 Night mode
112+
.setBgColor(0xFF333333)//滚轮背景颜色 Night mode
113+
.setRange(calendar.get(Calendar.YEAR) - 20, calendar.get(Calendar.YEAR) + 20)//默认是1900-2100年
114+
.setDate(selectedDate)// 如果不设置的话,默认是系统时间*/
115+
.setRangDate(startDate,endDate)//起始终止年月日设定
116+
.setLabel("","","","","","")
117+
.isDialog(true)//是否显示为对话框样式
118+
.build();
119+
```
120+
121+
```java
122+
pvOptions = new OptionsPickerView.Builder(this, new OptionsPickerView.OnOptionsSelectListener() {
123+
@Override
124+
public void onOptionsSelect(int options1, int option2, int options3 ,View v) {
125+
//返回的分别是三个级别的选中位置
126+
String tx = options1Items.get(options1).getPickerViewText()
127+
+ options2Items.get(options1).get(option2)
128+
+ options3Items.get(options1).get(option2).get(options3).getPickerViewText();
129+
tvOptions.setText(tx);
130+
}
131+
})
132+
.setSubmitText("确定")//确定按钮文字
133+
.setCancelText("取消")//取消按钮文字
134+
.setTitleText("城市选择")//标题
135+
.setSubCalSize(18)//确定和取消文字大小
136+
.setTitleSize(20)//标题文字大小
137+
.setTitleColor(Color.BLACK)//标题文字颜色
138+
.setSubmitColor(Color.BLUE)//确定按钮文字颜色
139+
.setCancelColor(Color.BLUE)//取消按钮文字颜色
140+
.setTitleBgColor(0xFF333333)//标题背景颜色 Night mode
141+
.setBgColor(0xFF000000)//滚轮背景颜色 Night mode
142+
.setContentTextSize(18)//滚轮文字大小
143+
.setLinkage(false)//设置是否联动,默认true
144+
.setLabels("", "", "")//设置选择的三级单位
145+
.setCyclic(false, false, false)//循环与否
146+
.setSelectOptions(1, 1, 1) //设置默认选中项
147+
.setOutSideCancelable(false)//点击外部dismiss default true
148+
.isDialog(true)//是否显示为对话框样式
149+
.build();
150+
151+
pvOptions.setPicker(options1Items, options2Items, options3Items);//添加数据源
152+
```
153+
### 4.如果需要自定义布局:
154+
155+
```java
156+
// 注意:自定义布局中,id为 optionspicker 或者 timepicker 的布局以及其子控件必须要有,否则会报空指针
157+
// 具体可参考demo 里面的两个自定义布局
158+
pvCustomOptions = new OptionsPickerView.Builder(this, new OptionsPickerView.OnOptionsSelectListener() {
159+
@Override
160+
public void onOptionsSelect(int options1, int option2, int options3, View v) {
161+
//返回的分别是三个级别的选中位置
162+
String tx = cardItem.get(options1).getPickerViewText();
163+
btn_CustomOptions.setText(tx);
164+
}
165+
})
166+
.setLayoutRes(R.layout.pickerview_custom_options, new CustomListener() {
167+
@Override
168+
public void customLayout(View v) {
169+
//自定义布局中的控件初始化及事件处理
170+
final TextView tvSubmit = (TextView) v.findViewById(R.id.tv_finish);
171+
final TextView tvAdd = (TextView) v.findViewById(R.id.tv_add);
172+
ImageView ivCancel = (ImageView) v.findViewById(R.id.iv_cancel);
173+
tvSubmit.setOnClickListener(new View.OnClickListener() {
174+
@Override
175+
public void onClick(View v) {
176+
pvCustomOptions.returnData(tvSubmit);
177+
}
178+
});
179+
ivCancel.setOnClickListener(new View.OnClickListener() {
180+
@Override
181+
public void onClick(View v) {
182+
pvCustomOptions.dismiss();
183+
}
184+
});
185+
186+
tvAdd.setOnClickListener(new View.OnClickListener() {
187+
@Override
188+
public void onClick(View v) {
189+
getData();
190+
pvCustomOptions.setPicker(cardItem);
191+
}
192+
});
193+
194+
}
195+
})
196+
.build();
197+
pvCustomOptions.setPicker(cardItem);//添加数据
198+
```
199+
200+
## 5.对使用还有疑问的话,可参考Demo代码
201+
[请戳我查看demo代码](https://github.com/Bigkoo/Android-PickerView/blob/master/app/src/main/java/com/bigkoo/pickerviewdemo/MainActivity.java)
107202

108-
# 详细使用请参考这里
109-
## [请戳我查看例示代码](https://github.com/Bigkoo/Android-PickerView/blob/master/app/src/main/java/com/bigkoo/pickerviewdemo/MainActivity.java)
110203

111204

112205
## 效果图(招行信用卡的“掌上生活”里面条件选择器他们用的就是我这个库,大家可以当实际项目参考)

0 commit comments

Comments
 (0)