1、,8 Android基本组件之常用widget组件介绍 (日期选择器,时间选择器,滚动视图,进度条,拖动条,评分组件),程浩,学习目标, 掌握Android中常用的widget组件 应用widget组件制作自己的UI应用 日期选择器(DatePicker)介绍与应用 时间选择器(TimePicker)介绍与应用 滚动视图(ScrollView)介绍与应用 进度条(ProgressBar)介绍与应用 拖动条(SeekBar)介绍与应用 评分组件(RatingBar)介绍与应用,日期选择器(DatePicker)介绍与应用,DatePicker是一个日期选择的组件,可以提供快速选择日期的方式。这里
2、同样先在main.xml文件中添加一个按钮,用以打开演示DatePicker组件的界面,实现代码如下:设定完按钮后,编写响应代码:,日期选择器(DatePicker)介绍与应用,Button date_picker_button = (Button) findViewById(R.id.date_picker_button); date_picker_button.setOnClickListener(date_picker_button_listener); private Button.OnClickListener date_picker_button_listener = new Bu
3、tton.OnClickListener() public void onClick(View v) Intent intent = new Intent(); intent.setClass(MainActivity.this, DatePickerActivity.class); startActivity(intent); ;,在单击按钮后,会启动一个新的DatePickerActivity,所以这里我们应该创建一个新的DatePickerActivity.java文件。实现代码如下: public void onCreate(Bundle savedInstanceState) sup
4、er.onCreate(savedInstanceState); setTitle(“哥就是数日子的日期选择器.“); setContentView(R.layout.date_picker); DatePicker dp = (DatePicker)this.findViewById(R.id.date_picker); dp.init(2010, 5, 19, null);在上面代码我们可以看到,调用了一个date_picker.xml的文件,所以,我们要设计一下显示的多选框的样式,对应设计代码如下:代码见mouse_widget中的date_picker.xml文件。接着在Android
5、Manifest.xml中添加如下代码: ,日期选择器(DatePicker)介绍与应用,日期选择器(DatePicker),日期选择器(DatePicker)演示界面,时间选择器(TimePicker)介绍与应用,TimePicker是时间选择组件,可以提供快速选择和调整时间的方式。这里现在main.xml中添加一个按钮,单击按钮会启动这个TimePickerActivity,添加Button的代码如下:定义一个id为“time_picker_button”的按钮,并设定其宽度和高度都是和内容自适应,并设定其显示文字为“哥显示的是时间选择器”。其对应的响应代码如下:,Button time_
6、picker_button = (Button) findViewById(R.id.time_picker_button); time_picker_button.setOnClickListener(time_picker_button_listener); private Button.OnClickListener time_picker_button_listener = new Button.OnClickListener() public void onClick(View v) Intent intent = new Intent(); intent.setClass(Main
7、Activity.this, TimePickerActivity.class); startActivity(intent); ; 这里创建了一个新的Activity,名字叫TimePickerActivity。 同时创建time_picker.xml的界面UI文件,代码见time_picker.xml 下面我们来看下TimePickerActivity.java中的代码:,时间选择器(TimePicker)介绍与应用,public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); set
8、Title(“哥是准时的时间选择器.“); setContentView(R.layout.time_picker); TimePicker tp = (TimePicker)this.findViewById(R.id.time_picker); tp.setIs24HourView(true); 接着在AndroidManifest.xml中添加如下代码:下面是项目效果图:,时间选择器(TimePicker)介绍与应用,时间选择器(TimePicker),时间选择器(TimePicker)介绍与应用,滚动视图(ScrollView)介绍与应用,这里每演示一个组件就会在主界面上增加一个按钮,
9、这时候,按钮已经差不多满屏了。所以这里我们需要一个组件ScrollView。ScrollView的功能主要就是将一个屏幕显示不了的内容,通过滚动显示出来,使用这个组件也比较直观,直接在LinearLayout外面再增加ScrollView组件申明即可,实现代码如下:这里将ScrollView套在LinearLayout外面,使得当LinearLayout的内容超过一个屏幕的时候可以滚动浏览。效果如下:,添加滚动条前 添加滚动条后,滚动视图(ScrollView)介绍与应用,进度条(ProgressBar)介绍与应用,ProgressBar是个非常有用的组件,其最直观的感觉就是进度条显示,但是在
10、Android中进度条有很多种,这里选择最常见的两种来说明。首先在main.xml中增加一个按钮,实现代码如下:然后添加其响应代码: Button progress_bar_button = (Button) findViewById(R.id.progress_bar_button); progress_bar_button.setOnClickListener(progress_bar_button_listener);,private Button.OnClickListener progress_bar_button_listener = new Button.OnClickListe
11、ner() public void onClick(View v) Intent intent = new Intent(); intent.setClass(MainActivity.this, ProgressBarActivity.class); startActivity(intent); ;然后创建ProgressBarActivity.java文件,并设定其模板为progress_bar.xml,在progress_bar.xml文件中添加两种表现显示的进度条组件,代码实现如下:,进度条(ProgressBar)介绍与应用,进度条(ProgressBar)介绍与应用,进度条(Pro
12、gressBar)界面展示,ProgressBar显示效果,SeekBar组件和水平的ProgressBar组件功能有些相似,不过其不同点在于SeekBar可以被拖动。首先在main.xml中放置一个显示SeekBar的按钮,XML文件代码如下:然后添加其响应代码:,拖动条(SeekBar)介绍与应用,Button seek_bar_button = (Button) findViewById(R.id.seek_bar_button); seek_bar_button.setOnClickListener(seek_bar_button_listener);private Button.On
13、ClickListener seek_bar_button_listener = new Button.OnClickListener() public void onClick(View v) Intent intent = new Intent(); intent.setClass(MainActivity.this, SeekBarActivity.class); startActivity(intent); ; 跳转到SeekBarActivity后,创建一个SeekBarActivity.java的文件,响应 Seek_bar.xml里的UI代码,seek_bar.xml中的代码如下
14、:,拖动条(SeekBar)介绍与应用, 其在SeekBarActivity.java中的响应代码如下:,拖动条(SeekBar)介绍与应用,public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setTitle(“哥是拖来拉去的拖动条.“); setContentView(R.layout.seek_bar); 接着在AndroidManifest.xml中添加如下代码:演示结果如下图:SeekBar演示效果,拖动条(SeekBar)介绍与应用,在让用户参与评分的时候,用Rati
15、ngBar组件实现非常方便,第一方便用户输入,第二直观,首先在main.xml中添加一个按钮文件代码如下:然后添加其响应代码:,评分组件(RatingBar)介绍与应用,Button rating_bar_button = (Button) findViewById(R.id.rating_bar_button); rating_bar_button.setOnClickListener(rating_bar_button_listener);private Button.OnClickListener rating_bar_button_listener = new Button.OnCli
16、ckListener() public void onClick(View v) Intent intent = new Intent(); intent.setClass(MainActivity.this, RatingBarActivity.class); startActivity(intent); ; 跳转到RatingBarActivity后,创建一个RatingBarActivity.java的文件,响应rating_bar.xml里的UI代码,rating_bar.xml中的代码如下:,评分组件(RatingBar)介绍与应用, 其在RatingBarActivity.java
17、中的响应代码如下:,评分组件(RatingBar)介绍与应用,public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setTitle(“手下留情,请评分“); setContentView(R.layout.rating_bar);接着在AndroidManifest.xml中添加如下代码:演示结果如下图:,评分组件(RatingBar)介绍与应用,评分组件(RatingBar)演示效果,评分组件(RatingBar)演示效果,本章小结,本章详细介绍android中widget组件里面的日期选择器(DatePicker),时间选择器(TimePicker),滚动视图(ScrollView),进度条(ProgressBar),拖动条(SeekBar),评分组件(RatingBar)六个控件的功能和使用方法,并且用代码创建了实例,希望大家多加练习,快速掌握。谢谢!,