先上最后效果图:
WheelView开源地址:https://github.com/chemalarrea/Android-wheel
部分代码如下(DatePickerDialog.java):
package com.ywl5320.pickaddress;
import java.util.ArrayList;
import java.util.Calendar;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.ywl5320.pickaddress.wheel.widget.adapters.AbstractWheelTextAdapter;
import com.ywl5320.pickaddress.wheel.widget.views.OnWheelChangedListener;
import com.ywl5320.pickaddress.wheel.widget.views.OnWheelScrollListener;
import com.ywl5320.pickaddress.wheel.widget.views.WheelView;
/**
* 日期选择对话框
*
* @author pengjian
*
*/
public class DatePickerDialog extends BaseDialog implements
android.view.View.OnClickListener {
private static final int MIN_YEAR = 1970;
private static final int MAX_YEAR = 2100;
public static final int DIALOG_MODE_CENTER = 0;
public static final int DIALOG_MODE_BOTTOM = 1;
private Context context;
private WheelView wvYear;
private WheelView wvMonth;
private WheelView wvDay;
private View vDialog;
private View vDialogChild;
private ViewGroup VDialogPicker;
private TextView tvTitle;
private TextView btnSure;
private TextView btnCancel;
private ArrayList<String> arry_years = new ArrayList<String>();
private ArrayList<String> arry_months = new ArrayList<String>();
private ArrayList<String> arry_days = new ArrayList<String>();
private CalendarTextAdapter mYearAdapter;
private CalendarTextAdapter mMonthAdapter;
private CalendarTextAdapter mDaydapter;
private int month;
private int day;
private int currentYear = getYear();
private int currentMonth = getMonth();
private int currentDay = getDay();
private int maxTextSize = 24;
private int minTextSize = 18;
private boolean issetdata = false;
private String selectYear;
private String selectMonth;
private String selectDay;
private