选择器是Android中常用的控件,常用于时间、图片、地址等信息的选择。

TimePickerView

时间选择器,支持自定义时间单位的选择。

  • 演示效果

Picker - 图1

Picker - 图2

  • 使用案例
1. mDatePicker = new TimePickerBuilder(getContext(), new OnTimeSelectListener() {
2. @Override
3. public void onTimeSelected(Date date, View v) {
4. ToastUtils.toast(DateUtils.date2String(date, DateUtils.yyyyMMdd.get()));
5. }
6. })
7. .setTimeSelectChangeListener(new OnTimeSelectChangeListener() {
8. @Override
9. public void onTimeSelectChanged(Date date) {
10. Log.i("pvTime", "onTimeSelectChanged");
11. }
12. })
13. .setTitleText("日期选择")
14. .build();

17. Calendar calendar = Calendar.getInstance();
18. calendar.setTime(DateUtils.string2Date("2013-07-08 12:32:46", DateUtils.yyyyMMddHHmmss.get()));
19. mTimePicker = new TimePickerBuilder(getContext(), new OnTimeSelectListener() {
20. @Override
21. public void onTimeSelected(Date date, View v) {
22. ToastUtils.toast(DateUtils.date2String(date, DateUtils.yyyyMMddHHmmss.get()));
23. }
24. })
25. .setTimeSelectChangeListener(new OnTimeSelectChangeListener() {
26. @Override
27. public void onTimeSelectChanged(Date date) {
28. Log.i("pvTime", "onTimeSelectChanged");
29. }
30. })
31. .setType(TimePickerType.ALL)
32. .setTitleText("时间选择")
33. .isDialog(true)
34. .setOutSideCancelable(false)
35. .setDate(calendar)
36. .build();

OptionsPicker

条件选择器,支持自定义条件选择。

  • 演示效果

Picker - 图3

  • 使用案例
1. OptionsPickerView pvOptions = new OptionsPickerBuilder(getContext(), new OnOptionsSelectListener() {
2. @Override
3. public void onOptionsSelect(int options1, int options2, int options3, View v) {
4. //返回的分别是三个级别的选中位置
5. String tx = options1Items.get(options1).getPickerViewText() + "-" +
6. options2Items.get(options1).get(options2) + "-" +
7. options3Items.get(options1).get(options2).get(options3);

9. ToastUtils.toast(tx);
10. }
11. })
12. .setTitleText("城市选择")
13. .setDividerColor(Color.BLACK)
14. .setTextColorCenter(Color.BLACK) //设置选中项文字颜色
15. .setContentTextSize(20)
16. .isDialog(isDialog)
17. .setSelectOptions(defaultSelectOptions[0], defaultSelectOptions[1], defaultSelectOptions[2])
18. .build();

20. pvOptions.setPicker(options1Items, options2Items, options3Items);//三级选择器
21. pvOptions.show();

PhotoPicker

图片选择器,使用的是第三方的库PhotoPicker,支持单图片和多图片选择。

  • 演示效果

Picker - 图4

  • 使用案例
1. //单图片选择
2. PhotoPicker.builder()
3. .setPhotoCount(1)
4. .start(getContext(), this);

6. //多图片选择
7. PhotoPicker.builder()
8. .setPhotoCount(9)
9. .setGridColumnCount(4)
10. .start(getContext(), this);

12. //支持选择gif
13. PhotoPicker.builder()
14. .setShowCamera(true)
15. .setShowGif(true)
16. .start(getContext(), this);
  • 注意需要增加如下依赖
1. implementation 'com.github.xuexiangjys:PhotoPicker:1.0.1'