Android Material Design 5.0 PickerDialog
5.0 time selector in the system:
This project is compatible with less than 3.0 so with third-party open source projects: actionbarsherlock, animation effect compatibility: nineoldandroids-2.4.0.jar, format converter: joda-time-2.1.jar
Main call code example:
import org.joda.time.DateTime;import android.os.Bundle;import android.support.v4.app.FragmentTransaction;import android.text.format.DateFormat;import android.widget.Toast;import com.actionbarsherlock.app.SherlockFragmentActivity;import com.doomonafireball.betterpickers.calendardatepicker.CalendarDatePickerDialog;import com.doomonafireball.betterpickers.radialtimepicker.RadialTimePickerDialog;public class MainActivity extends SherlockFragmentActivity implements CalendarDatePickerDialog.OnDateSetListener, RadialTimePickerDialog.OnTimeSetListener {public static final String FRAG_TAG_TIME_PICKER = timePickerDialogFragment;public static final String FRAG_TAG_DATE_PICKER = fragment_date_picker_name;private boolean mHasDialogFrame;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/*FragmentManager fm = getSupportFragmentManager();DateTime now = DateTime.now();CalendarDatePickerDialog calendarDatePickerDialog = CalendarDatePickerDialog.newInstance(this, now.getYear(), now.getMonthOfYear() - 1,now.getDayOfMonth());calendarDatePickerDialog.show(fm, FRAG_TAG_DATE_PICKER);*/ if (savedInstanceState == null) { mHasDialogFrame = findViewById(R.id.frame) != null; }DateTime now = DateTime.now();RadialTimePickerDialog timePickerDialog = RadialTimePickerDialog.newInstance(this, now.getHourOfDay(), now.getMinuteOfHour(),DateFormat.is24HourFormat(this));if (mHasDialogFrame) {FragmentTransaction ft = getSupportFragmentManager().beginTransaction();ft.add(R.id.frame, timePickerDialog, FRAG_TAG_TIME_PICKER).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).commit();} else {timePickerDialog.show(getSupportFragmentManager(), FRAG_TAG_TIME_PICKER);}}@Overridepublic void onResume() {// Example of reattaching to the fragmentsuper.onResume();/*CalendarDatePickerDialog calendarDatePickerDialog = (CalendarDatePickerDialog) getSupportFragmentManager().findFragmentByTag(FRAG_TAG_DATE_PICKER);if (calendarDatePickerDialog != null) {calendarDatePickerDialog.setOnDateSetListener(this);}*/ RadialTimePickerDialog rtpd = (RadialTimePickerDialog) getSupportFragmentManager().findFragmentByTag( FRAG_TAG_TIME_PICKER); if (rtpd != null) { rtpd.setOnTimeSetListener(this); }}@Overridepublic void onTimeSet(RadialTimePickerDialog dialog, int hourOfDay,int minute) {// TODO Auto-generated method stubString result= + hourOfDay + : + minute;Toast.makeText(this, result, Toast.LENGTH_SHORT).show();}@Overridepublic void onDateSet(CalendarDatePickerDialog dialog, int year,int monthOfYear, int dayOfMonth) {// TODO Auto-generated method stubString result=Year: + year + Month: + monthOfYear + Day: + dayOfMonth;Toast.makeText(this, result, Toast.LENGTH_SHORT).show();}}
Theme:
Ui Color Style modification:
#00000000
#ffffffff
#ff4c4c4c
#28ffffff
#00000000
#46c5c1ff
#ff33b5e5
#ff000000
#ffb2b2b2
#28000000
#00000000
#ff00ddff
#ff00ddff
#ffffff
#f2f2f2
#cccccc
#8c8c8c
#000000
#cccccc
#8c8c8c
#7f000000
#33b5e5
#c1e8f7
#33999999
#0099cc
#ff999999
#999999
#f2f2f2
#ffd1d2d4
#ff3333
#853333
#404040
#363636
#808080
#ffffff
#888888
#bfbfbf
#fff2f2f2
#ff737373
For example:
#cfcfcf
Modify the background color of the TextView corresponding to the day of the week. For specific color meanings, see Dialog definition.