您的位置:首页 > 其它

2014-8-10 mars安卓视频 Lesson16-18

2014-08-10 17:55 274 查看
经过上次被百度空间坑了之后,再结合之前使用百度空间的各种不愉快,想想写技术博客什么的话还是用CSDN好一些(刚刚发现CSDN会自动保存草稿,业界良心!)。之前的博客地址为:http://hi.baidu.com/xiao_xie

呐,新的旅程就这么开始啦~

Lesson 16 时间与日期

1、TimePicker的使用方法

什么是TimePicker呢?





在xml布局文件中
<TimePicker
android:id="@+id/firstTimePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
模拟器显示:



接下来我们来看如何在代码中实现TimePicker,就是我们如何知道用户选择了哪个时间。这主要是利用onTimeChangedListener监听器类的OnTimeChanged方法来看用户把时间改到什么程度了。

2、OnTimeChangeLIstener的使用方法

class TimeLisener implements OnTimeChangedListener{
//view:该对象代表着TimePicker
//hourOfDay:用户所选择的小时
//minute:用户所选择的分钟
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
System.out.println("Hour:"+hourOfDay+",minute:"+minute);

}

}
PS:之前关于TimePicker对象的声明、TimeListener的声明及timePicker与监听器的绑定已经省略了,这里只贴出了监听器类的代码。
执行之后控制台调试界面将输出用户对时间的调整状态(不过不知道为什么切换PM与AM时时间输出没有改变):



如果要使用24小时制时间怎么办呢?
这需要用到Is24HourView方法:



在模拟器里AM和PM消失了,这样就变成24小时制了:



接下来还有一个问题,如果仔细观察调试界面输出的信息的话可以发现,用户每动一下时钟,相应的信息就会输出。能不能让用户调整完了之后按下按钮我们再看用户调整的时间呢?我们通过增加一个按钮来实现这个功能。
在xml文件中的布局代码:



java代码:



模拟器中运行效果及调试窗口显示消息如下所示:





TimePicker显示时间时默认显示的是系统时间,如果想要让它开始就显示一个指定的时间,可以修改ButtonListener类中firstTimePIcker的getCurrentHour为setCurrentHour,分钟亦如此~

3、DatePicker的使用方法



要实现通过点击一个按钮来获取当前的日期信息可以采用与上述TimePicker类似的方法,在此不再赘述,直接上图说明:





模拟器显示:



调试窗口显示结果:



PS:java程序当中月份从0开始算起,但日期还是从1开始算起

4、AnalogClock的使用方法



它在实际开发当中用得不多,只是此处讲时间,就一并将它拿了讲了。





Lesson 17 ProgressBar
1、Android当中的进度条



2、各种进度条之间的关系



3、ProgressBar进度条的风格
在本课第一张图中,第一个进度条是默认风格的进度条,第二张图片(右上)的水平风格的进度条,第三张图(左下)是可拖曳形式的进度条,第四张图是一种评价类型的进度条。第三种和第四种我们将下在一课进行学习。这节课先说前两种。



2~6都是对默认进度条的风格设置,只有1是水平进度条的风格。据说2、3适合深色背景,3~6更适合白色的背景色能看得更清楚一些,但实验结果显示其实二者没有区别。



其实关于风格的属性设置就在于红色划线处的这句xml语句。由于结果不明显,此处就不贴图进行说明了。
进度条的主要属性有以下几个



以下是对进度条属性的设置代码及结果:





在代码中怎么实现这种效果呢?



那如果在Xml文件和java代码中同时对进度条进行了设置以哪个为准呢?根据就近原则,代码会覆盖xml文件,故以代码中的设置为准。
接下来介绍一个有意思的方法——isIndeterminate()用于判断是转圈方式的进度条还是水平方向的进度条。转圈的是不确定的,没有告诉用户这个运算什么时候结束,不是明确的,返回true。水平风格的是确定的,调用该方法返回false。
还有两个有趣的方法:
incrementProgressBy(10);//当前进度增加10
progressBar.incrementSecondaryProgressBy(10);//第二进度增加10
我们通过设置两个按钮来更清晰地说明这个问题。使之实现点第一个按钮增加主进度的进度,点第二个按钮来增加第二进度。
xml布局文件:



java代码:



模拟器第一个按钮和第二个按钮依次点击一次之后(灰色代码max,深蓝色代表第一进度,浅蓝色代表第二进度):



Lesson 18 SeekBar和Rating Bar
1、SeekBar的主要属性
首先,SeekBar是进度条是可以拖动的,接下来介绍SeekBar的主要属性:



接下来用代码演示一下这三个属性:
布局文件: java代码:





模拟器显示:



2、OnSeekBarChangeListener



一、进度发生变化触发监听器。用户可以来回拖曳,需要知道进度到了什么位置
二、当用户开始拖曳进度时将会调用该方法
三、当用户停止拖曳进度时将会调用该方法
接下来用代码来实现监听器及其三个方法:



结果:



3、RatingBar的主要属性
RatingBar是用来评分的一种进度条。



注:stepSize是指从在往右滑动一次性前进的步伐。(半颗星、一颗星或者其他)
4、OnRatingBarChangeListener



和SeekBar一样,通过设置一个按钮进行点击来增加RatingBar进度的方法来演示RatingBar的监听器:





先连续两次点击button,之后直接用鼠标将进度条拖曳到第4颗星:



对于上述操作调试输出结果(注意fromUser的变化,用button对进度条进行增加是false,只有用户直接用鼠标拖曳才是true):



至此,mars老师安卓教学视频第一季重制版到这里正式结束了。
这一季下来大致的收获是学会了一些基本控件的使用方法,以及如何利用监听器监听控件的行为。额外的有在eclipse中快捷键的使用,这一点让自己觉得“啊原来编程没有那么难啊”,但路漫漫其修远兮,要学的东西还有太多太多。最近心情也颇不平静,与人相处既欢愉也心累,所以想要慢慢尝试着过一种“如何生活只剩下编程该怎么办”的生活。接下来的话要把一本编程入门经典快啃完,再看mars老师第二季的重制版视频。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐