Android(安卓)Material Design 5.0 PickerDialog
16lz
2021-01-24
5.0系统下的时间选择器效果图:
该项目兼容到3.0以下所以用第三方开源项目:actionbarsherlock,动画效果兼容:nineoldandroids-2.4.0.jar,格式转换器:joda-time-2.1.jar
主要调用代码实例:
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 + "\nMonth: " + monthOfYear + "\nDay: " + dayOfMonth;Toast.makeText(this, result, Toast.LENGTH_SHORT).show();}}
Theme:
界面颜色风格修改:
<?xml version="1.0" encoding="utf-8"?> #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
比如:
#cfcfcf
修改星期几对应的TextView 的背景色,具体颜色含义参考 Dialog定义
下面是所有源码下载地址:http://download.csdn.net/detail/anddroid_lanyan/8839177
更多相关文章
- Android(安卓)自定义View
- Android开发入门之拨打电话
- android关于手机和3.0版本以上平板去标题问题
- Android(安卓)Studion样式中自带的三个item分别代表什么:
- Android(安卓)EditText 中hint文字大小以及与输入文字颜色保存一