选择器是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();
  15. Calendar calendar = Calendar.getInstance();
  16. calendar.setTime(DateUtils.string2Date("2013-07-08 12:32:46", DateUtils.yyyyMMddHHmmss.get()));
  17. mTimePicker = new TimePickerBuilder(getContext(), new OnTimeSelectListener() {
  18. @Override
  19. public void onTimeSelected(Date date, View v) {
  20. ToastUtils.toast(DateUtils.date2String(date, DateUtils.yyyyMMddHHmmss.get()));
  21. }
  22. })
  23. .setTimeSelectChangeListener(new OnTimeSelectChangeListener() {
  24. @Override
  25. public void onTimeSelectChanged(Date date) {
  26. Log.i("pvTime", "onTimeSelectChanged");
  27. }
  28. })
  29. .setType(TimePickerType.ALL)
  30. .setTitleText("时间选择")
  31. .isDialog(true)
  32. .setOutSideCancelable(false)
  33. .setDate(calendar)
  34. .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);
  8. ToastUtils.toast(tx);
  9. }
  10. })
  11. .setTitleText("城市选择")
  12. .setDividerColor(Color.BLACK)
  13. .setTextColorCenter(Color.BLACK) //设置选中项文字颜色
  14. .setContentTextSize(20)
  15. .isDialog(isDialog)
  16. .setSelectOptions(defaultSelectOptions[0], defaultSelectOptions[1], defaultSelectOptions[2])
  17. .build();
  18. pvOptions.setPicker(options1Items, options2Items, options3Items);//三级选择器
  19. pvOptions.show();

PhotoPicker

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

  • 演示效果

Picker - 图4

  • 使用案例
  1. //单图片选择
  2. PhotoPicker.builder()
  3. .setPhotoCount(1)
  4. .start(getContext(), this);
  5. //多图片选择
  6. PhotoPicker.builder()
  7. .setPhotoCount(9)
  8. .setGridColumnCount(4)
  9. .start(getContext(), this);
  10. //支持选择gif
  11. PhotoPicker.builder()
  12. .setShowCamera(true)
  13. .setShowGif(true)
  14. .start(getContext(), this);
  • 注意需要增加如下依赖
  1. implementation 'com.github.xuexiangjys:PhotoPicker:1.0.1'