Android界面编程——日期时间组件(五)


Android界面编程——日期时间组件

2.6日期时间组件

2.6.1 TextClock

以文本的方式显示系统日期和时间,可以自定义显示格式,是 Android4.2(对应API Level 17)提供的新特性。

TextClock有两种格式设置方式:

1、 在24小时模式:

属性:android:format24Hour

方法:set Format24Hour(CharSequence)

2、 在12小时模式:

属性:android: format12Hour

方法:set Format12Hour (CharSequence)

 

下面就通过案例2.6-1,讲解TextClock的用法,执行效果如图2.6-1

 

2.6-1




2.6.2 AnalogClock

AnalogClock控件显示模拟时钟。它继承了View组件,在View组件的基础上重写了onDraw方法,在OnDraw方法实现绘制模拟时钟,但绘制了时针和分针没有秒针。

2.6-1列出了AnalogClock所支持的XML属性。

表2.6-1AnalogClock所支持的XML属性说明

XML属性

备注

android:dial

设置模拟表盘的使用的图片

android:hand_hour

设置模拟表盘时针使用的图片

android:hand_minute

设置模拟表盘分针使用的图片

 

下面就通过案例2.6-2,讲解AnlogClock的基本用法,执行效果如图2.6-2

 

 

2.6-2


2.6.3 DatePickerTimePicker

DatePickerTimePicker Android提供用于选择一个时间和选择一个日期的控件。

他们都继承自FrameLayout,使用起来比较简单。

使用DatePickerTimePicker控件有助于确保用户选择一个时间或日期是有效的、格式正确。

TimePicker用于选择的时间(小时,分钟,上午/下午)的每个部分。

DatePicker用于选择日期(月,日,年)的每个部分。

如图2.6-3所示:

 

2.6-3

 

 

 

2.6-2列出了DatePicker所支持的XML属性。

表2.6-2 DatePicker所支持的XML属性说明

XML属性

备注

android:calendarViewShown

是否显示CalendarView组件

android:spinnersShown

是否显示Spinner组件

android:endYear

是否允许选择最后一年

android:startYear

是否允许选择第一年

android:maxDate

以MM / DD / yyyy格式显示此日历视图的最大日期

android:minDate

以MM / DD / yyyy格式显示此日历视图的最小日期

 

 

下面就通过案例2.6-3,讲解AnlogClock的基本用法,执行效果如图2.6-3

 

2.6-3





public class PickerActivity extends AppCompatActivity {
    private int year;
    private int month;
    private int day;
    private int hour;
    private int minute;
    private DatePicker datePicker;
    private TimePicker timePicker;

    @Override
datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
            @Override
            public void onDateChanged(DatePicker arg0, int year, int month, int day) {
PickerActivity.this.year = year;
                PickerActivity.this.month = month;
PickerActivity.this.day = day;
                // 显示当前时间和日期
                showDate(year, month, day, hour, minute);
            }
        });
        // 为TimerPicker指定事件监听器
        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker arg0, int hour, int minute) {
                PickerActivity.this.hour = hour;
                PickerActivity.this.minute = minute;
            }
        });
        showDate(year,month,day,hour,minute);
    }

    protected void showDate(int year, int month, int day, int hour,int minute) {
        EditText text = (EditText) findViewById(R.id.etShowDate);
        text.setText("选择的日期和时间为:" + year + "年" + (month+1) + "月" + day + "日"
                + hour + "时" + minute+ "分");
    }
}

2.6.5 CalendarView

是一个日历组件,用于显示和选择日期。日历支持的范围是可配置的。用户可以选择一个日期,也可以通过触摸滚动来选择所需的日期。

2.6-3列出了CalendarView所支持的XML属性。

表2.6-3 CalendarView所支持的XML属性说明

 

XML属性

方法

备注

android: dateTextAppearance

setDateTextAppearance(INT)

设置日历控件日期文字的样式

android:maxDate

setMaxDate(long)

以MM / DD / yyyy格式在此日历视图中显示的最小日期

android:minDate

setMinDate(long)

以MM / DD / yyyy格式在此日历视图中显示的最大日期

android: firstDayOfWeek

setFirstDayOfWeekINT

给日历设置周的第一天

android:shownWeekCount

set ShownWeekCount(INT)

设置日历总共显示几个周

android:selectedWeekBackgroundColor

 

setSelectedWeekBackgroundColor(INT)

 

设置已选择的周的背景颜色

android:focusedMonthDateColor

 

setFocusedMonthDateColor

 

设置焦点月份的文字的颜色

android:weekSeparatorLineColor

 

setWeekSeparatorLineColor(INT)

 

设置周分割线的颜色

 

 

android:unfocusedMonthDateColor

 

setUnfocusedMonthDateColor(INT)

设置未选中月份的文字的颜色

下面就通过案例2.6-4,讲解CalendarView的基本用法,执行效果如图2.6-4。

 

 

 

2.6-4



public class CalendarViewActivity extends AppCompatActivity {
    private CalendarView cv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calendar_view);
        cv=(CalendarView)findViewById(R.id.calenddarView);
        initCalendarView();
    }
    private void initCalendarView(){
        //为CalendarView组件的日期改变事件添加事件监听器
        cv.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
            @Override
            public void onSelectedDayChange(CalendarView view, int year,
                                            int month, int dayOfMonth) {
                //使用Toast显示用户选择的日期
                Toast.makeText(CalendarViewActivity.this,
                        "购票日期:" + year + "年" + month + "月" + dayOfMonth + "日"
                        , Toast.LENGTH_SHORT).show();
            }
        });
    }
}

案例关键点:

通过为CalendarView对象设置日期监听OnDateChangeListener,并复写回调方法onSelectedDayChange(),获得用户选择的日期




作者:冲天之峰   20160711

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值