Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Material Design 5.0 PickerDialog

Android Material Design 5.0 PickerDialog

編輯:關於Android編程

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;

	@Override
	protected 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);
		}
	}

	@Override
	public void onResume() {
		// Example of reattaching to the fragment
		super.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);
	        }
	}

	@Override
	public void onTimeSet(RadialTimePickerDialog dialog, int hourOfDay,
			int minute) {
		// TODO Auto-generated method stub
		String result= + hourOfDay + : + minute;
		Toast.makeText(this, result, Toast.LENGTH_SHORT).show();
	}

	@Override
	public void onDateSet(CalendarDatePickerDialog dialog, int year,
			int monthOfYear, int dayOfMonth) {
		// TODO Auto-generated method stub
		String result=Year:  + year + 
Month:  + monthOfYear + 
Day:  + dayOfMonth;
		Toast.makeText(this, result, Toast.LENGTH_SHORT).show();
	}
}

Theme:

 

 



界面顏色風格修改:

 

 



    #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定義

 

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved