|
@@ -0,0 +1,915 @@
|
|
|
|
+package com.bigkoo.pickerview.view;
|
|
|
|
+
|
|
|
|
+import android.view.View;
|
|
|
|
+
|
|
|
|
+import com.bigkoo.pickerview.R;
|
|
|
|
+import com.bigkoo.pickerview.adapter.ArrayWheelAdapter;
|
|
|
|
+import com.bigkoo.pickerview.adapter.NumericWheelAdapter;
|
|
|
|
+import com.bigkoo.pickerview.listener.ISelectTimeCallback;
|
|
|
|
+import com.bigkoo.pickerview.utils.ChinaDate;
|
|
|
|
+import com.bigkoo.pickerview.utils.LunarCalendar;
|
|
|
|
+import com.contrarywind.listener.OnItemSelectedListener;
|
|
|
|
+import com.contrarywind.view.WheelView;
|
|
|
|
+
|
|
|
|
+import java.text.DateFormat;
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
|
+import java.util.Arrays;
|
|
|
|
+import java.util.Calendar;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+public class WheelTime {
|
|
|
|
+ public static DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
+ private View view;
|
|
|
|
+ private WheelView wv_year;
|
|
|
|
+ private WheelView wv_month;
|
|
|
|
+ private WheelView wv_day;
|
|
|
|
+ private WheelView wv_hours;
|
|
|
|
+ private WheelView wv_minutes;
|
|
|
|
+ private WheelView wv_seconds;
|
|
|
|
+ private int gravity;
|
|
|
|
+
|
|
|
|
+ private boolean[] type;
|
|
|
|
+ private static final int DEFAULT_START_YEAR = 1900;
|
|
|
|
+ private static final int DEFAULT_END_YEAR = 2100;
|
|
|
|
+ private static final int DEFAULT_START_MONTH = 1;
|
|
|
|
+ private static final int DEFAULT_END_MONTH = 12;
|
|
|
|
+ private static final int DEFAULT_START_DAY = 1;
|
|
|
|
+ private static final int DEFAULT_END_DAY = 31;
|
|
|
|
+
|
|
|
|
+ private int startYear = DEFAULT_START_YEAR;
|
|
|
|
+ private int endYear = DEFAULT_END_YEAR;
|
|
|
|
+ private int startMonth = DEFAULT_START_MONTH;
|
|
|
|
+ private int endMonth = DEFAULT_END_MONTH;
|
|
|
|
+ private int startDay = DEFAULT_START_DAY;
|
|
|
|
+ private int endDay = DEFAULT_END_DAY; //表示31天的
|
|
|
|
+ private int currentYear;
|
|
|
|
+
|
|
|
|
+ private int textSize;
|
|
|
|
+
|
|
|
|
+ private boolean isLunarCalendar = false;
|
|
|
|
+ private ISelectTimeCallback mSelectChangeCallback;
|
|
|
|
+
|
|
|
|
+ public WheelTime(View view, boolean[] type, int gravity, int textSize) {
|
|
|
|
+ super();
|
|
|
|
+ this.view = view;
|
|
|
|
+ this.type = type;
|
|
|
|
+ this.gravity = gravity;
|
|
|
|
+ this.textSize = textSize;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setLunarMode(boolean isLunarCalendar) {
|
|
|
|
+ this.isLunarCalendar = isLunarCalendar;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public boolean isLunarMode() {
|
|
|
|
+ return isLunarCalendar;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setPicker(int year, int month, int day) {
|
|
|
|
+ this.setPicker(year, month, day, 0, 0, 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setPicker(int year, final int month, int day, int h, int m, int s) {
|
|
|
|
+ if (isLunarCalendar) {
|
|
|
|
+ int[] lunar = LunarCalendar.solarToLunar(year, month + 1, day);
|
|
|
|
+ setLunar(lunar[0], lunar[1] - 1, lunar[2], lunar[3] == 1, h, m, s);
|
|
|
|
+ } else {
|
|
|
|
+ setSolar(year, month, day, h, m, s);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 设置农历
|
|
|
|
+ *
|
|
|
|
+ * @param year
|
|
|
|
+ * @param month
|
|
|
|
+ * @param day
|
|
|
|
+ * @param h
|
|
|
|
+ * @param m
|
|
|
|
+ * @param s
|
|
|
|
+ */
|
|
|
|
+ private void setLunar(int year, final int month, int day, boolean isLeap, int h, int m, int s) {
|
|
|
|
+ // 年
|
|
|
|
+ wv_year = (WheelView) view.findViewById(R.id.year);
|
|
|
|
+ wv_year.setAdapter(new ArrayWheelAdapter(ChinaDate.getYears(startYear, endYear)));// 设置"年"的显示数据
|
|
|
|
+ wv_year.setLabel("");// 添加文字
|
|
|
|
+ wv_year.setCurrentItem(year - startYear);// 初始化时显示的数据
|
|
|
|
+ wv_year.setGravity(gravity);
|
|
|
|
+
|
|
|
|
+ // 月
|
|
|
|
+ wv_month = (WheelView) view.findViewById(R.id.month);
|
|
|
|
+ wv_month.setAdapter(new ArrayWheelAdapter(ChinaDate.getMonths(year)));
|
|
|
|
+ wv_month.setLabel("");
|
|
|
|
+
|
|
|
|
+ int leapMonth = ChinaDate.leapMonth(year);
|
|
|
|
+ if (leapMonth != 0 && (month > leapMonth - 1 || isLeap)) { //选中月是闰月或大于闰月
|
|
|
|
+ wv_month.setCurrentItem(month + 1);
|
|
|
|
+ } else {
|
|
|
|
+ wv_month.setCurrentItem(month);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ wv_month.setGravity(gravity);
|
|
|
|
+
|
|
|
|
+ // 日
|
|
|
|
+ wv_day = (WheelView) view.findViewById(R.id.day);
|
|
|
|
+ // 判断大小月及是否闰年,用来确定"日"的数据
|
|
|
|
+ if (ChinaDate.leapMonth(year) == 0) {
|
|
|
|
+ wv_day.setAdapter(new ArrayWheelAdapter(ChinaDate.getLunarDays(ChinaDate.monthDays(year, month))));
|
|
|
|
+ } else {
|
|
|
|
+ wv_day.setAdapter(new ArrayWheelAdapter(ChinaDate.getLunarDays(ChinaDate.leapDays(year))));
|
|
|
|
+ }
|
|
|
|
+ wv_day.setLabel("");
|
|
|
|
+ wv_day.setCurrentItem(day - 1);
|
|
|
|
+ wv_day.setGravity(gravity);
|
|
|
|
+
|
|
|
|
+ wv_hours = (WheelView) view.findViewById(R.id.hour);
|
|
|
|
+ wv_hours.setAdapter(new NumericWheelAdapter(0, 23));
|
|
|
|
+ //wv_hours.setLabel(context.getString(R.string.pickerview_hours));// 添加文字
|
|
|
|
+ wv_hours.setCurrentItem(h);
|
|
|
|
+ wv_hours.setGravity(gravity);
|
|
|
|
+
|
|
|
|
+ wv_minutes = (WheelView) view.findViewById(R.id.min);
|
|
|
|
+ wv_minutes.setAdapter(new NumericWheelAdapter(0, 59));
|
|
|
|
+ //wv_minutes.setLabel(context.getString(R.string.pickerview_minutes));// 添加文字
|
|
|
|
+ wv_minutes.setCurrentItem(m);
|
|
|
|
+ wv_minutes.setGravity(gravity);
|
|
|
|
+
|
|
|
|
+ wv_seconds = (WheelView) view.findViewById(R.id.second);
|
|
|
|
+ wv_seconds.setAdapter(new NumericWheelAdapter(0, 59));
|
|
|
|
+ //wv_seconds.setLabel(context.getString(R.string.pickerview_minutes));// 添加文字
|
|
|
|
+ wv_seconds.setCurrentItem(m);
|
|
|
|
+ wv_seconds.setGravity(gravity);
|
|
|
|
+
|
|
|
|
+ // 添加"年"监听
|
|
|
|
+ wv_year.setOnItemSelectedListener(new OnItemSelectedListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void onItemSelected(int index) {
|
|
|
|
+ int year_num = index + startYear;
|
|
|
|
+ // 判断是不是闰年,来确定月和日的选择
|
|
|
|
+ wv_month.setAdapter(new ArrayWheelAdapter(ChinaDate.getMonths(year_num)));
|
|
|
|
+ if (ChinaDate.leapMonth(year_num) != 0 && wv_month.getCurrentItem() > ChinaDate.leapMonth(year_num) - 1) {
|
|
|
|
+ wv_month.setCurrentItem(wv_month.getCurrentItem() + 1);
|
|
|
|
+ } else {
|
|
|
|
+ wv_month.setCurrentItem(wv_month.getCurrentItem());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ int currentIndex = wv_day.getCurrentItem();
|
|
|
|
+ int maxItem = 29;
|
|
|
|
+ if (ChinaDate.leapMonth(year_num) != 0 && wv_month.getCurrentItem() > ChinaDate.leapMonth(year_num) - 1) {
|
|
|
|
+ if (wv_month.getCurrentItem() == ChinaDate.leapMonth(year_num) + 1) {
|
|
|
|
+ wv_day.setAdapter(new ArrayWheelAdapter(ChinaDate.getLunarDays(ChinaDate.leapDays(year_num))));
|
|
|
|
+ maxItem = ChinaDate.leapDays(year_num);
|
|
|
|
+ } else {
|
|
|
|
+ wv_day.setAdapter(new ArrayWheelAdapter(ChinaDate.getLunarDays(ChinaDate.monthDays(year_num, wv_month.getCurrentItem()))));
|
|
|
|
+ maxItem = ChinaDate.monthDays(year_num, wv_month.getCurrentItem());
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ wv_day.setAdapter(new ArrayWheelAdapter(ChinaDate.getLunarDays(ChinaDate.monthDays(year_num, wv_month.getCurrentItem() + 1))));
|
|
|
|
+ maxItem = ChinaDate.monthDays(year_num, wv_month.getCurrentItem() + 1);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (currentIndex > maxItem - 1) {
|
|
|
|
+ wv_day.setCurrentItem(maxItem - 1);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (mSelectChangeCallback != null) {
|
|
|
|
+ mSelectChangeCallback.onTimeSelectChanged();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ // 添加"月"监听
|
|
|
|
+ wv_month.setOnItemSelectedListener(new OnItemSelectedListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void onItemSelected(int index) {
|
|
|
|
+ int month_num = index;
|
|
|
|
+ int year_num = wv_year.getCurrentItem() + startYear;
|
|
|
|
+ int currentIndex = wv_day.getCurrentItem();
|
|
|
|
+ int maxItem = 29;
|
|
|
|
+ if (ChinaDate.leapMonth(year_num) != 0 && month_num > ChinaDate.leapMonth(year_num) - 1) {
|
|
|
|
+ if (wv_month.getCurrentItem() == ChinaDate.leapMonth(year_num) + 1) {
|
|
|
|
+ wv_day.setAdapter(new ArrayWheelAdapter(ChinaDate.getLunarDays(ChinaDate.leapDays(year_num))));
|
|
|
|
+ maxItem = ChinaDate.leapDays(year_num);
|
|
|
|
+ } else {
|
|
|
|
+ wv_day.setAdapter(new ArrayWheelAdapter(ChinaDate.getLunarDays(ChinaDate.monthDays(year_num, month_num))));
|
|
|
|
+ maxItem = ChinaDate.monthDays(year_num, month_num);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ wv_day.setAdapter(new ArrayWheelAdapter(ChinaDate.getLunarDays(ChinaDate.monthDays(year_num, month_num + 1))));
|
|
|
|
+ maxItem = ChinaDate.monthDays(year_num, month_num + 1);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (currentIndex > maxItem - 1) {
|
|
|
|
+ wv_day.setCurrentItem(maxItem - 1);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (mSelectChangeCallback != null) {
|
|
|
|
+ mSelectChangeCallback.onTimeSelectChanged();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ setChangedListener(wv_day);
|
|
|
|
+ setChangedListener(wv_hours);
|
|
|
|
+ setChangedListener(wv_minutes);
|
|
|
|
+ setChangedListener(wv_seconds);
|
|
|
|
+
|
|
|
|
+ if (type.length != 6) {
|
|
|
|
+ throw new RuntimeException("type[] length is not 6");
|
|
|
|
+ }
|
|
|
|
+ wv_year.setVisibility(type[0] ? View.VISIBLE : View.GONE);
|
|
|
|
+ wv_month.setVisibility(type[1] ? View.VISIBLE : View.GONE);
|
|
|
|
+ wv_day.setVisibility(type[2] ? View.VISIBLE : View.GONE);
|
|
|
|
+ wv_hours.setVisibility(type[3] ? View.VISIBLE : View.GONE);
|
|
|
|
+ wv_minutes.setVisibility(type[4] ? View.VISIBLE : View.GONE);
|
|
|
|
+ wv_seconds.setVisibility(type[5] ? View.VISIBLE : View.GONE);
|
|
|
|
+ setContentTextSize();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 设置公历
|
|
|
|
+ *
|
|
|
|
+ * @param year
|
|
|
|
+ * @param month
|
|
|
|
+ * @param day
|
|
|
|
+ * @param h
|
|
|
|
+ * @param m
|
|
|
|
+ * @param s
|
|
|
|
+ */
|
|
|
|
+ private void setSolar(int year, final int month, int day, int h, int m, int s) {
|
|
|
|
+ // 添加大小月月份并将其转换为list,方便之后的判断
|
|
|
|
+ String[] months_big = {"1", "3", "5", "7", "8", "10", "12"};
|
|
|
|
+ String[] months_little = {"4", "6", "9", "11"};
|
|
|
|
+
|
|
|
|
+ final List<String> list_big = Arrays.asList(months_big);
|
|
|
|
+ final List<String> list_little = Arrays.asList(months_little);
|
|
|
|
+
|
|
|
|
+ currentYear = year;
|
|
|
|
+ // 年
|
|
|
|
+ wv_year = (WheelView) view.findViewById(R.id.year);
|
|
|
|
+ wv_year.setAdapter(new NumericWheelAdapter(startYear, endYear));// 设置"年"的显示数据
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ wv_year.setCurrentItem(year - startYear);// 初始化时显示的数据
|
|
|
|
+ wv_year.setGravity(gravity);
|
|
|
|
+ // 月
|
|
|
|
+ wv_month = (WheelView) view.findViewById(R.id.month);
|
|
|
|
+ if (startYear == endYear) {//开始年等于终止年
|
|
|
|
+ wv_month.setAdapter(new NumericWheelAdapter(startMonth, endMonth));
|
|
|
|
+ wv_month.setCurrentItem(month + 1 - startMonth);
|
|
|
|
+ } else if (year == startYear) {
|
|
|
|
+ //起始日期的月份控制
|
|
|
|
+ wv_month.setAdapter(new NumericWheelAdapter(startMonth, 12));
|
|
|
|
+ wv_month.setCurrentItem(month + 1 - startMonth);
|
|
|
|
+ } else if (year == endYear) {
|
|
|
|
+ //终止日期的月份控制
|
|
|
|
+ wv_month.setAdapter(new NumericWheelAdapter(1, endMonth));
|
|
|
|
+ wv_month.setCurrentItem(month);
|
|
|
|
+ } else {
|
|
|
|
+ wv_month.setAdapter(new NumericWheelAdapter(1, 12));
|
|
|
|
+ wv_month.setCurrentItem(month);
|
|
|
|
+ }
|
|
|
|
+ wv_month.setGravity(gravity);
|
|
|
|
+ // 日
|
|
|
|
+ wv_day = (WheelView) view.findViewById(R.id.day);
|
|
|
|
+
|
|
|
|
+ boolean leapYear = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
|
|
|
|
+ if (startYear == endYear && startMonth == endMonth) {
|
|
|
|
+ if (list_big.contains(String.valueOf(month + 1))) {
|
|
|
|
+ if (endDay > 31) {
|
|
|
|
+ endDay = 31;
|
|
|
|
+ }
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(startDay, endDay));
|
|
|
|
+ } else if (list_little.contains(String.valueOf(month + 1))) {
|
|
|
|
+ if (endDay > 30) {
|
|
|
|
+ endDay = 30;
|
|
|
|
+ }
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(startDay, endDay));
|
|
|
|
+ } else {
|
|
|
|
+ // 闰年
|
|
|
|
+ if (leapYear) {
|
|
|
|
+ if (endDay > 29) {
|
|
|
|
+ endDay = 29;
|
|
|
|
+ }
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(startDay, endDay));
|
|
|
|
+ } else {
|
|
|
|
+ if (endDay > 28) {
|
|
|
|
+ endDay = 28;
|
|
|
|
+ }
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(startDay, endDay));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ wv_day.setCurrentItem(day - startDay);
|
|
|
|
+ } else if (year == startYear && month + 1 == startMonth) {
|
|
|
|
+ // 起始日期的天数控制
|
|
|
|
+ if (list_big.contains(String.valueOf(month + 1))) {
|
|
|
|
+
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(startDay, 31));
|
|
|
|
+ } else if (list_little.contains(String.valueOf(month + 1))) {
|
|
|
|
+
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(startDay, 30));
|
|
|
|
+ } else {
|
|
|
|
+ // 闰年 29,平年 28
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(startDay, leapYear ? 29 : 28));
|
|
|
|
+ }
|
|
|
|
+ wv_day.setCurrentItem(day - startDay);
|
|
|
|
+ } else if (year == endYear && month + 1 == endMonth) {
|
|
|
|
+ // 终止日期的天数控制
|
|
|
|
+ if (list_big.contains(String.valueOf(month + 1))) {
|
|
|
|
+ if (endDay > 31) {
|
|
|
|
+ endDay = 31;
|
|
|
|
+ }
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(1, endDay));
|
|
|
|
+ } else if (list_little.contains(String.valueOf(month + 1))) {
|
|
|
|
+ if (endDay > 30) {
|
|
|
|
+ endDay = 30;
|
|
|
|
+ }
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(1, endDay));
|
|
|
|
+ } else {
|
|
|
|
+ // 闰年
|
|
|
|
+ if (leapYear) {
|
|
|
|
+ if (endDay > 29) {
|
|
|
|
+ endDay = 29;
|
|
|
|
+ }
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(1, endDay));
|
|
|
|
+ } else {
|
|
|
|
+ if (endDay > 28) {
|
|
|
|
+ endDay = 28;
|
|
|
|
+ }
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(1, endDay));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ wv_day.setCurrentItem(day - 1);
|
|
|
|
+ } else {
|
|
|
|
+ // 判断大小月及是否闰年,用来确定"日"的数据
|
|
|
|
+ if (list_big.contains(String.valueOf(month + 1))) {
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(1, 31));
|
|
|
|
+ } else if (list_little.contains(String.valueOf(month + 1))) {
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(1, 30));
|
|
|
|
+ } else {
|
|
|
|
+ // 闰年 29,平年 28
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(startDay, leapYear ? 29 : 28));
|
|
|
|
+ }
|
|
|
|
+ wv_day.setCurrentItem(day - 1);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ wv_day.setGravity(gravity);
|
|
|
|
+ //时
|
|
|
|
+ wv_hours = (WheelView) view.findViewById(R.id.hour);
|
|
|
|
+ wv_hours.setAdapter(new NumericWheelAdapter(0, 23));
|
|
|
|
+
|
|
|
|
+ wv_hours.setCurrentItem(h);
|
|
|
|
+ wv_hours.setGravity(gravity);
|
|
|
|
+ //分
|
|
|
|
+ wv_minutes = (WheelView) view.findViewById(R.id.min);
|
|
|
|
+ wv_minutes.setAdapter(new NumericWheelAdapter(0, 59));
|
|
|
|
+
|
|
|
|
+ wv_minutes.setCurrentItem(m);
|
|
|
|
+ wv_minutes.setGravity(gravity);
|
|
|
|
+ //秒
|
|
|
|
+ wv_seconds = (WheelView) view.findViewById(R.id.second);
|
|
|
|
+ wv_seconds.setAdapter(new NumericWheelAdapter(0, 59));
|
|
|
|
+
|
|
|
|
+ wv_seconds.setCurrentItem(s);
|
|
|
|
+ wv_seconds.setGravity(gravity);
|
|
|
|
+
|
|
|
|
+ // 添加"年"监听
|
|
|
|
+ wv_year.setOnItemSelectedListener(new OnItemSelectedListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void onItemSelected(int index) {
|
|
|
|
+ int year_num = index + startYear;
|
|
|
|
+ currentYear = year_num;
|
|
|
|
+ int currentMonthItem = wv_month.getCurrentItem();//记录上一次的item位置
|
|
|
|
+ // 判断大小月及是否闰年,用来确定"日"的数据
|
|
|
|
+ if (startYear == endYear) {
|
|
|
|
+ //重新设置月份
|
|
|
|
+ wv_month.setAdapter(new NumericWheelAdapter(startMonth, endMonth));
|
|
|
|
+
|
|
|
|
+ if (currentMonthItem > wv_month.getAdapter().getItemsCount() - 1) {
|
|
|
|
+ currentMonthItem = wv_month.getAdapter().getItemsCount() - 1;
|
|
|
|
+ wv_month.setCurrentItem(currentMonthItem);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ int monthNum = currentMonthItem + startMonth;
|
|
|
|
+
|
|
|
|
+ if (startMonth == endMonth) {
|
|
|
|
+ //重新设置日
|
|
|
|
+ setReDay(year_num, monthNum, startDay, endDay, list_big, list_little);
|
|
|
|
+ } else if (monthNum == startMonth) {
|
|
|
|
+ //重新设置日
|
|
|
|
+ setReDay(year_num, monthNum, startDay, 31, list_big, list_little);
|
|
|
|
+ } else if (monthNum == endMonth) {
|
|
|
|
+ setReDay(year_num, monthNum, 1, endDay, list_big, list_little);
|
|
|
|
+ } else {//重新设置日
|
|
|
|
+ setReDay(year_num, monthNum, 1, 31, list_big, list_little);
|
|
|
|
+ }
|
|
|
|
+ } else if (year_num == startYear) {//等于开始的年
|
|
|
|
+ //重新设置月份
|
|
|
|
+ wv_month.setAdapter(new NumericWheelAdapter(startMonth, 12));
|
|
|
|
+
|
|
|
|
+ if (currentMonthItem > wv_month.getAdapter().getItemsCount() - 1) {
|
|
|
|
+ currentMonthItem = wv_month.getAdapter().getItemsCount() - 1;
|
|
|
|
+ wv_month.setCurrentItem(currentMonthItem);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ int month = currentMonthItem + startMonth;
|
|
|
|
+ if (month == startMonth) {
|
|
|
|
+ //重新设置日
|
|
|
|
+ setReDay(year_num, month, startDay, 31, list_big, list_little);
|
|
|
|
+ } else {
|
|
|
|
+ //重新设置日
|
|
|
|
+ setReDay(year_num, month, 1, 31, list_big, list_little);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else if (year_num == endYear) {
|
|
|
|
+ //重新设置月份
|
|
|
|
+ wv_month.setAdapter(new NumericWheelAdapter(1, endMonth));
|
|
|
|
+ if (currentMonthItem > wv_month.getAdapter().getItemsCount() - 1) {
|
|
|
|
+ currentMonthItem = wv_month.getAdapter().getItemsCount() - 1;
|
|
|
|
+ wv_month.setCurrentItem(currentMonthItem);
|
|
|
|
+ }
|
|
|
|
+ int monthNum = currentMonthItem + 1;
|
|
|
|
+
|
|
|
|
+ if (monthNum == endMonth) {
|
|
|
|
+ //重新设置日
|
|
|
|
+ setReDay(year_num, monthNum, 1, endDay, list_big, list_little);
|
|
|
|
+ } else {
|
|
|
|
+ //重新设置日
|
|
|
|
+ setReDay(year_num, monthNum, 1, 31, list_big, list_little);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ //重新设置月份
|
|
|
|
+ wv_month.setAdapter(new NumericWheelAdapter(1, 12));
|
|
|
|
+ //重新设置日
|
|
|
|
+ setReDay(year_num, wv_month.getCurrentItem() + 1, 1, 31, list_big, list_little);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (mSelectChangeCallback != null) {
|
|
|
|
+ mSelectChangeCallback.onTimeSelectChanged();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 添加"月"监听
|
|
|
|
+ wv_month.setOnItemSelectedListener(new OnItemSelectedListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void onItemSelected(int index) {
|
|
|
|
+ int month_num = index + 1;
|
|
|
|
+
|
|
|
|
+ if (startYear == endYear) {
|
|
|
|
+ month_num = month_num + startMonth - 1;
|
|
|
|
+ if (startMonth == endMonth) {
|
|
|
|
+ //重新设置日
|
|
|
|
+ setReDay(currentYear, month_num, startDay, endDay, list_big, list_little);
|
|
|
|
+ } else if (startMonth == month_num) {
|
|
|
|
+
|
|
|
|
+ //重新设置日
|
|
|
|
+ setReDay(currentYear, month_num, startDay, 31, list_big, list_little);
|
|
|
|
+ } else if (endMonth == month_num) {
|
|
|
|
+ setReDay(currentYear, month_num, 1, endDay, list_big, list_little);
|
|
|
|
+ } else {
|
|
|
|
+ setReDay(currentYear, month_num, 1, 31, list_big, list_little);
|
|
|
|
+ }
|
|
|
|
+ } else if (currentYear == startYear) {
|
|
|
|
+ month_num = month_num + startMonth - 1;
|
|
|
|
+ if (month_num == startMonth) {
|
|
|
|
+ //重新设置日
|
|
|
|
+ setReDay(currentYear, month_num, startDay, 31, list_big, list_little);
|
|
|
|
+ } else {
|
|
|
|
+ //重新设置日
|
|
|
|
+ setReDay(currentYear, month_num, 1, 31, list_big, list_little);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else if (currentYear == endYear) {
|
|
|
|
+ if (month_num == endMonth) {
|
|
|
|
+ //重新设置日
|
|
|
|
+ setReDay(currentYear, wv_month.getCurrentItem() + 1, 1, endDay, list_big, list_little);
|
|
|
|
+ } else {
|
|
|
|
+ setReDay(currentYear, wv_month.getCurrentItem() + 1, 1, 31, list_big, list_little);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ //重新设置日
|
|
|
|
+ setReDay(currentYear, month_num, 1, 31, list_big, list_little);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (mSelectChangeCallback != null) {
|
|
|
|
+ mSelectChangeCallback.onTimeSelectChanged();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ setChangedListener(wv_day);
|
|
|
|
+ setChangedListener(wv_hours);
|
|
|
|
+ setChangedListener(wv_minutes);
|
|
|
|
+ setChangedListener(wv_seconds);
|
|
|
|
+
|
|
|
|
+ if (type.length != 6) {
|
|
|
|
+ throw new IllegalArgumentException("type[] length is not 6");
|
|
|
|
+ }
|
|
|
|
+ wv_year.setVisibility(type[0] ? View.VISIBLE : View.GONE);
|
|
|
|
+ wv_month.setVisibility(type[1] ? View.VISIBLE : View.GONE);
|
|
|
|
+ wv_day.setVisibility(type[2] ? View.VISIBLE : View.GONE);
|
|
|
|
+ wv_hours.setVisibility(type[3] ? View.VISIBLE : View.GONE);
|
|
|
|
+ wv_minutes.setVisibility(type[4] ? View.VISIBLE : View.GONE);
|
|
|
|
+ wv_seconds.setVisibility(type[5] ? View.VISIBLE : View.GONE);
|
|
|
|
+ setContentTextSize();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void setChangedListener(WheelView wheelView) {
|
|
|
|
+ if (mSelectChangeCallback != null) {
|
|
|
|
+ wheelView.setOnItemSelectedListener(new OnItemSelectedListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void onItemSelected(int index) {
|
|
|
|
+ mSelectChangeCallback.onTimeSelectChanged();
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ private void setReDay(int year_num, int monthNum, int startD, int endD, List<String> list_big, List<String> list_little) {
|
|
|
|
+ int currentItem = wv_day.getCurrentItem();
|
|
|
|
+
|
|
|
|
+// int maxItem;
|
|
|
|
+ if (list_big.contains(String.valueOf(monthNum))) {
|
|
|
|
+ if (endD > 31) {
|
|
|
|
+ endD = 31;
|
|
|
|
+ }
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(startD, endD));
|
|
|
|
+// maxItem = endD;
|
|
|
|
+ } else if (list_little.contains(String.valueOf(monthNum))) {
|
|
|
|
+ if (endD > 30) {
|
|
|
|
+ endD = 30;
|
|
|
|
+ }
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(startD, endD));
|
|
|
|
+// maxItem = endD;
|
|
|
|
+ } else {
|
|
|
|
+ if ((year_num % 4 == 0 && year_num % 100 != 0)
|
|
|
|
+ || year_num % 400 == 0) {
|
|
|
|
+ if (endD > 29) {
|
|
|
|
+ endD = 29;
|
|
|
|
+ }
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(startD, endD));
|
|
|
|
+// maxItem = endD;
|
|
|
|
+ } else {
|
|
|
|
+ if (endD > 28) {
|
|
|
|
+ endD = 28;
|
|
|
|
+ }
|
|
|
|
+ wv_day.setAdapter(new NumericWheelAdapter(startD, endD));
|
|
|
|
+// maxItem = endD;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (currentItem > wv_day.getAdapter().getItemsCount() - 1) {
|
|
|
|
+ currentItem = wv_day.getAdapter().getItemsCount() - 1;
|
|
|
|
+ wv_day.setCurrentItem(currentItem);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ private void setContentTextSize() {
|
|
|
|
+ wv_day.setTextSize(textSize);
|
|
|
|
+ wv_month.setTextSize(textSize);
|
|
|
|
+ wv_year.setTextSize(textSize);
|
|
|
|
+ wv_hours.setTextSize(textSize);
|
|
|
|
+ wv_minutes.setTextSize(textSize);
|
|
|
|
+ wv_seconds.setTextSize(textSize);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public void setLabels(String label_year, String label_month, String label_day, String label_hours, String label_mins, String label_seconds) {
|
|
|
|
+ if (isLunarCalendar) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (label_year != null) {
|
|
|
|
+ wv_year.setLabel(label_year);
|
|
|
|
+ } else {
|
|
|
|
+ wv_year.setLabel(view.getContext().getString(R.string.pickerview_year));
|
|
|
|
+ }
|
|
|
|
+ if (label_month != null) {
|
|
|
|
+ wv_month.setLabel(label_month);
|
|
|
|
+ } else {
|
|
|
|
+ wv_month.setLabel(view.getContext().getString(R.string.pickerview_month));
|
|
|
|
+ }
|
|
|
|
+ if (label_day != null) {
|
|
|
|
+ wv_day.setLabel(label_day);
|
|
|
|
+ } else {
|
|
|
|
+ wv_day.setLabel(view.getContext().getString(R.string.pickerview_day));
|
|
|
|
+ }
|
|
|
|
+ if (label_hours != null) {
|
|
|
|
+ wv_hours.setLabel(label_hours);
|
|
|
|
+ } else {
|
|
|
|
+ wv_hours.setLabel(view.getContext().getString(R.string.pickerview_hours));
|
|
|
|
+ }
|
|
|
|
+ if (label_mins != null) {
|
|
|
|
+ wv_minutes.setLabel(label_mins);
|
|
|
|
+ } else {
|
|
|
|
+ wv_minutes.setLabel(view.getContext().getString(R.string.pickerview_minutes));
|
|
|
|
+ }
|
|
|
|
+ if (label_seconds != null) {
|
|
|
|
+ wv_seconds.setLabel(label_seconds);
|
|
|
|
+ } else {
|
|
|
|
+ wv_seconds.setLabel(view.getContext().getString(R.string.pickerview_seconds));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setTextXOffset(int x_offset_year, int x_offset_month, int x_offset_day,
|
|
|
|
+ int x_offset_hours, int x_offset_minutes, int x_offset_seconds) {
|
|
|
|
+ wv_year.setTextXOffset(x_offset_year);
|
|
|
|
+ wv_month.setTextXOffset(x_offset_month);
|
|
|
|
+ wv_day.setTextXOffset(x_offset_day);
|
|
|
|
+ wv_hours.setTextXOffset(x_offset_hours);
|
|
|
|
+ wv_minutes.setTextXOffset(x_offset_minutes);
|
|
|
|
+ wv_seconds.setTextXOffset(x_offset_seconds);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 设置是否循环滚动
|
|
|
|
+ *
|
|
|
|
+ * @param cyclic
|
|
|
|
+ */
|
|
|
|
+ public void setCyclic(boolean cyclic) {
|
|
|
|
+ wv_year.setCyclic(cyclic);
|
|
|
|
+ wv_month.setCyclic(cyclic);
|
|
|
|
+ wv_day.setCyclic(cyclic);
|
|
|
|
+ wv_hours.setCyclic(cyclic);
|
|
|
|
+ wv_minutes.setCyclic(cyclic);
|
|
|
|
+ wv_seconds.setCyclic(cyclic);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public String getTime() {
|
|
|
|
+ if (isLunarCalendar) {
|
|
|
|
+ //如果是农历 返回对应的公历时间
|
|
|
|
+ return getLunarTime();
|
|
|
|
+ }
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
+ if (currentYear == startYear) {
|
|
|
|
+ /* int i = wv_month.getCurrentItem() + startMonth;
|
|
|
|
+ System.out.println("i:" + i);*/
|
|
|
|
+ if ((wv_month.getCurrentItem() + startMonth) == startMonth) {
|
|
|
|
+ sb.append((wv_year.getCurrentItem() + startYear)).append("-")
|
|
|
|
+ .append((wv_month.getCurrentItem() + startMonth)).append("-")
|
|
|
|
+ .append((wv_day.getCurrentItem() + startDay)).append(" ")
|
|
|
|
+ .append(wv_hours.getCurrentItem()).append(":")
|
|
|
|
+ .append(wv_minutes.getCurrentItem()).append(":")
|
|
|
|
+ .append(wv_seconds.getCurrentItem());
|
|
|
|
+ } else {
|
|
|
|
+ sb.append((wv_year.getCurrentItem() + startYear)).append("-")
|
|
|
|
+ .append((wv_month.getCurrentItem() + startMonth)).append("-")
|
|
|
|
+ .append((wv_day.getCurrentItem() + 1)).append(" ")
|
|
|
|
+ .append(wv_hours.getCurrentItem()).append(":")
|
|
|
|
+ .append(wv_minutes.getCurrentItem()).append(":")
|
|
|
|
+ .append(wv_seconds.getCurrentItem());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ sb.append((wv_year.getCurrentItem() + startYear)).append("-")
|
|
|
|
+ .append((wv_month.getCurrentItem() + 1)).append("-")
|
|
|
|
+ .append((wv_day.getCurrentItem() + 1)).append(" ")
|
|
|
|
+ .append(wv_hours.getCurrentItem()).append(":")
|
|
|
|
+ .append(wv_minutes.getCurrentItem()).append(":")
|
|
|
|
+ .append(wv_seconds.getCurrentItem());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return sb.toString();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 农历返回对应的公历时间
|
|
|
|
+ *
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ private String getLunarTime() {
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
+ int year = wv_year.getCurrentItem() + startYear;
|
|
|
|
+ int month = 1;
|
|
|
|
+ boolean isLeapMonth = false;
|
|
|
|
+ if (ChinaDate.leapMonth(year) == 0) {
|
|
|
|
+ month = wv_month.getCurrentItem() + 1;
|
|
|
|
+ } else {
|
|
|
|
+ if ((wv_month.getCurrentItem() + 1) - ChinaDate.leapMonth(year) <= 0) {
|
|
|
|
+ month = wv_month.getCurrentItem() + 1;
|
|
|
|
+ } else if ((wv_month.getCurrentItem() + 1) - ChinaDate.leapMonth(year) == 1) {
|
|
|
|
+ month = wv_month.getCurrentItem();
|
|
|
|
+ isLeapMonth = true;
|
|
|
|
+ } else {
|
|
|
|
+ month = wv_month.getCurrentItem();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ int day = wv_day.getCurrentItem() + 1;
|
|
|
|
+ int[] solar = LunarCalendar.lunarToSolar(year, month, day, isLeapMonth);
|
|
|
|
+
|
|
|
|
+ sb.append(solar[0]).append("-")
|
|
|
|
+ .append(solar[1]).append("-")
|
|
|
|
+ .append(solar[2]).append(" ")
|
|
|
|
+ .append(wv_hours.getCurrentItem()).append(":")
|
|
|
|
+ .append(wv_minutes.getCurrentItem()).append(":")
|
|
|
|
+ .append(wv_seconds.getCurrentItem());
|
|
|
|
+ return sb.toString();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public View getView() {
|
|
|
|
+ return view;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public int getStartYear() {
|
|
|
|
+ return startYear;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setStartYear(int startYear) {
|
|
|
|
+ this.startYear = startYear;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public int getEndYear() {
|
|
|
|
+ return endYear;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setEndYear(int endYear) {
|
|
|
|
+ this.endYear = endYear;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public void setRangDate(Calendar startDate, Calendar endDate) {
|
|
|
|
+
|
|
|
|
+ if (startDate == null && endDate != null) {
|
|
|
|
+ int year = endDate.get(Calendar.YEAR);
|
|
|
|
+ int month = endDate.get(Calendar.MONTH) + 1;
|
|
|
|
+ int day = endDate.get(Calendar.DAY_OF_MONTH);
|
|
|
|
+ if (year > startYear) {
|
|
|
|
+ this.endYear = year;
|
|
|
|
+ this.endMonth = month;
|
|
|
|
+ this.endDay = day;
|
|
|
|
+ } else if (year == startYear) {
|
|
|
|
+ if (month > startMonth) {
|
|
|
|
+ this.endYear = year;
|
|
|
|
+ this.endMonth = month;
|
|
|
|
+ this.endDay = day;
|
|
|
|
+ } else if (month == startMonth) {
|
|
|
|
+ if (day > startDay) {
|
|
|
|
+ this.endYear = year;
|
|
|
|
+ this.endMonth = month;
|
|
|
|
+ this.endDay = day;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else if (startDate != null && endDate == null) {
|
|
|
|
+ int year = startDate.get(Calendar.YEAR);
|
|
|
|
+ int month = startDate.get(Calendar.MONTH) + 1;
|
|
|
|
+ int day = startDate.get(Calendar.DAY_OF_MONTH);
|
|
|
|
+ if (year < endYear) {
|
|
|
|
+ this.startMonth = month;
|
|
|
|
+ this.startDay = day;
|
|
|
|
+ this.startYear = year;
|
|
|
|
+ } else if (year == endYear) {
|
|
|
|
+ if (month < endMonth) {
|
|
|
|
+ this.startMonth = month;
|
|
|
|
+ this.startDay = day;
|
|
|
|
+ this.startYear = year;
|
|
|
|
+ } else if (month == endMonth) {
|
|
|
|
+ if (day < endDay) {
|
|
|
|
+ this.startMonth = month;
|
|
|
|
+ this.startDay = day;
|
|
|
|
+ this.startYear = year;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else if (startDate != null && endDate != null) {
|
|
|
|
+ this.startYear = startDate.get(Calendar.YEAR);
|
|
|
|
+ this.endYear = endDate.get(Calendar.YEAR);
|
|
|
|
+ this.startMonth = startDate.get(Calendar.MONTH) + 1;
|
|
|
|
+ this.endMonth = endDate.get(Calendar.MONTH) + 1;
|
|
|
|
+ this.startDay = startDate.get(Calendar.DAY_OF_MONTH);
|
|
|
|
+ this.endDay = endDate.get(Calendar.DAY_OF_MONTH);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 设置间距倍数,但是只能在1.0-4.0f之间
|
|
|
|
+ *
|
|
|
|
+ * @param lineSpacingMultiplier
|
|
|
|
+ */
|
|
|
|
+ public void setLineSpacingMultiplier(float lineSpacingMultiplier) {
|
|
|
|
+ wv_day.setLineSpacingMultiplier(lineSpacingMultiplier);
|
|
|
|
+ wv_month.setLineSpacingMultiplier(lineSpacingMultiplier);
|
|
|
|
+ wv_year.setLineSpacingMultiplier(lineSpacingMultiplier);
|
|
|
|
+ wv_hours.setLineSpacingMultiplier(lineSpacingMultiplier);
|
|
|
|
+ wv_minutes.setLineSpacingMultiplier(lineSpacingMultiplier);
|
|
|
|
+ wv_seconds.setLineSpacingMultiplier(lineSpacingMultiplier);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 设置分割线的颜色
|
|
|
|
+ *
|
|
|
|
+ * @param dividerColor
|
|
|
|
+ */
|
|
|
|
+ public void setDividerColor(int dividerColor) {
|
|
|
|
+ wv_day.setDividerColor(dividerColor);
|
|
|
|
+ wv_month.setDividerColor(dividerColor);
|
|
|
|
+ wv_year.setDividerColor(dividerColor);
|
|
|
|
+ wv_hours.setDividerColor(dividerColor);
|
|
|
|
+ wv_minutes.setDividerColor(dividerColor);
|
|
|
|
+ wv_seconds.setDividerColor(dividerColor);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 设置分割线的颜色
|
|
|
|
+ *
|
|
|
|
+ * @param padding
|
|
|
|
+ */
|
|
|
|
+ public void setDividerPadding(int padding) {
|
|
|
|
+ view.setPadding(padding,0,padding,0);
|
|
|
|
+// wv_day.setDividerPadding(padding);
|
|
|
|
+// wv_month.setDividerPadding(padding);
|
|
|
|
+// wv_year.setDividerPadding(padding);
|
|
|
|
+// wv_hours.setDividerPadding(padding);
|
|
|
|
+// wv_minutes.setDividerPadding(padding);
|
|
|
|
+// wv_seconds.setDividerPadding(padding);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 设置分割线的类型
|
|
|
|
+ *
|
|
|
|
+ * @param dividerType
|
|
|
|
+ */
|
|
|
|
+ public void setDividerType(WheelView.DividerType dividerType) {
|
|
|
|
+ wv_day.setDividerType(dividerType);
|
|
|
|
+ wv_month.setDividerType(dividerType);
|
|
|
|
+ wv_year.setDividerType(dividerType);
|
|
|
|
+ wv_hours.setDividerType(dividerType);
|
|
|
|
+ wv_minutes.setDividerType(dividerType);
|
|
|
|
+ wv_seconds.setDividerType(dividerType);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 设置分割线之间的文字的颜色
|
|
|
|
+ *
|
|
|
|
+ * @param textColorCenter
|
|
|
|
+ */
|
|
|
|
+ public void setTextColorCenter(int textColorCenter) {
|
|
|
|
+ wv_day.setTextColorCenter(textColorCenter);
|
|
|
|
+ wv_month.setTextColorCenter(textColorCenter);
|
|
|
|
+ wv_year.setTextColorCenter(textColorCenter);
|
|
|
|
+ wv_hours.setTextColorCenter(textColorCenter);
|
|
|
|
+ wv_minutes.setTextColorCenter(textColorCenter);
|
|
|
|
+ wv_seconds.setTextColorCenter(textColorCenter);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 设置分割线以外文字的颜色
|
|
|
|
+ *
|
|
|
|
+ * @param textColorOut
|
|
|
|
+ */
|
|
|
|
+ public void setTextColorOut(int textColorOut) {
|
|
|
|
+ wv_day.setTextColorOut(textColorOut);
|
|
|
|
+ wv_month.setTextColorOut(textColorOut);
|
|
|
|
+ wv_year.setTextColorOut(textColorOut);
|
|
|
|
+ wv_hours.setTextColorOut(textColorOut);
|
|
|
|
+ wv_minutes.setTextColorOut(textColorOut);
|
|
|
|
+ wv_seconds.setTextColorOut(textColorOut);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @param isCenterLabel 是否只显示中间选中项的
|
|
|
|
+ */
|
|
|
|
+ public void isCenterLabel(boolean isCenterLabel) {
|
|
|
|
+ wv_day.isCenterLabel(isCenterLabel);
|
|
|
|
+ wv_month.isCenterLabel(isCenterLabel);
|
|
|
|
+ wv_year.isCenterLabel(isCenterLabel);
|
|
|
|
+ wv_hours.isCenterLabel(isCenterLabel);
|
|
|
|
+ wv_minutes.isCenterLabel(isCenterLabel);
|
|
|
|
+ wv_seconds.isCenterLabel(isCenterLabel);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setSelectChangeCallback(ISelectTimeCallback mSelectChangeCallback) {
|
|
|
|
+ this.mSelectChangeCallback = mSelectChangeCallback;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setItemsVisible(int itemsVisibleCount) {
|
|
|
|
+ wv_day.setItemsVisibleCount(itemsVisibleCount);
|
|
|
|
+ wv_month.setItemsVisibleCount(itemsVisibleCount);
|
|
|
|
+ wv_year.setItemsVisibleCount(itemsVisibleCount);
|
|
|
|
+ wv_hours.setItemsVisibleCount(itemsVisibleCount);
|
|
|
|
+ wv_minutes.setItemsVisibleCount(itemsVisibleCount);
|
|
|
|
+ wv_seconds.setItemsVisibleCount(itemsVisibleCount);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setAlphaGradient(boolean isAlphaGradient) {
|
|
|
|
+ wv_day.setAlphaGradient(isAlphaGradient);
|
|
|
|
+ wv_month.setAlphaGradient(isAlphaGradient);
|
|
|
|
+ wv_year.setAlphaGradient(isAlphaGradient);
|
|
|
|
+ wv_hours.setAlphaGradient(isAlphaGradient);
|
|
|
|
+ wv_minutes.setAlphaGradient(isAlphaGradient);
|
|
|
|
+ wv_seconds.setAlphaGradient(isAlphaGradient);
|
|
|
|
+ }
|
|
|
|
+}
|