Android移动开发基础教程-第9章--综合实战课件

上传人:风*** 文档编号:224040436 上传时间:2023-07-25 格式:PPTX 页数:16 大小:1.86MB
收藏 版权申诉 举报 下载
Android移动开发基础教程-第9章--综合实战课件_第1页
第1页 / 共16页
Android移动开发基础教程-第9章--综合实战课件_第2页
第2页 / 共16页
Android移动开发基础教程-第9章--综合实战课件_第3页
第3页 / 共16页
资源描述:

《Android移动开发基础教程-第9章--综合实战课件》由会员分享,可在线阅读,更多相关《Android移动开发基础教程-第9章--综合实战课件(16页珍藏版)》请在装配图网上搜索。

1、Android Android Android Android 移动开发移动开发移动开发移动开发基础教程基础教程基础教程基础教程第第9 9章章 综合实战综合实战n n 在前面几章中我们介绍了在前面几章中我们介绍了 Android Android 开发的一些基础知识,在本章我们开发的一些基础知识,在本章我们将综合运用之前的一些知识实现一个常见的视频播放器,使其可以播将综合运用之前的一些知识实现一个常见的视频播放器,使其可以播放本地的视频资源。放本地的视频资源。9.1 视频播放器 对于一个视频播放器来说,常见的功能有进度条显示和拖动功能,用户对于一个视频播放器来说,常见的功能有进度条显示和拖动功能

2、,用户拖动进度条可以快进和快退,在播放的过程中,进度条应该不断地更新播放拖动进度条可以快进和快退,在播放的过程中,进度条应该不断地更新播放的时间和显示视频总时长,同时还需要提供暂停的时间和显示视频总时长,同时还需要提供暂停/继续播放功能。继续播放功能。9.1.1 9.1.1 界面布局界面布局 界面主体部分需要添加一个界面主体部分需要添加一个 SurfaceView SurfaceView 用于显示播放的内容,然后用于显示播放的内容,然后需要显示进度条和播控按钮。需要显示进度条和播控按钮。为了可以更灵活地布局这些组件,布局方式可以采用为了可以更灵活地布局这些组件,布局方式可以采用 Relativ

3、eLayout RelativeLayout。在布局文件中,外层的视图容器为相对布局方式,其中添加了一个在布局文件中,外层的视图容器为相对布局方式,其中添加了一个SurfaceView SurfaceView 视图,视图,layout_widthlayout_width和和 layout_height layout_height 的值都为的值都为 match_parentmatch_parent,使得播放内容占满整个画面。其后定义了一个垂直的线性,使得播放内容占满整个画面。其后定义了一个垂直的线性布局,用于显示进度条和播控按钮等内容,通过设置布局,用于显示进度条和播控按钮等内容,通过设置 an

4、droid:layout_ android:layout_ alignBottom=id/svewalignBottom=id/svew使得该布局与使得该布局与 SurfaceView SurfaceView 的底部对齐,设置的底部对齐,设置 android:alpha android:alpha 属性让其具有一定的透明度。在该布局中,首先定义了一属性让其具有一定的透明度。在该布局中,首先定义了一个个 SeekBar SeekBar 用于显示播放的进度和拖动条,然后定义了一个水平的线性布用于显示播放的进度和拖动条,然后定义了一个水平的线性布局用于显示播控按钮和播放时间。播控按钮通过设置局用于显

5、示播控按钮和播放时间。播控按钮通过设置 android:clickable=android:clickable=truetrue使得该图片可以被单击,用于实现播放使得该图片可以被单击,用于实现播放/暂停功能。暂停功能。页面具体效果如图页面具体效果如图 9.1 9.1 所示。所示。图 9.1 页面布局9.1.2 9.1.2 初始化初始化 视频播放需要指定视频所在的路径或视频播放需要指定视频所在的路径或 URL URL,本章我们基于第,本章我们基于第 5 5 章小练章小练习的文件浏览器获取视频路径,在文件浏览的过程中,如果是文件夹,则进习的文件浏览器获取视频路径,在文件浏览的过程中,如果是文件夹,

6、则进入下级目录,如果是视频文件,则调用本章的视频播放器,并将视频的路径入下级目录,如果是视频文件,则调用本章的视频播放器,并将视频的路径作为参数传入,其他文件则返回。作为参数传入,其他文件则返回。在组件的初始化函数在组件的初始化函数 initWidget()initWidget()方法中,首先通过方法中,首先通过findViewById()findViewById()方法获取各个控件,然后为进度的显示和进度条的位置设置初始值方法获取各个控件,然后为进度的显示和进度条的位置设置初始值 。通过。通过 setOnClickListenersetOnClickListener方法为播控图片设置监听事件

7、。方法为播控图片设置监听事件。9.1.3 9.1.3 播控和进度控制播控和进度控制 在视频播放中,暂停、继续播放和进度拖动是常见的操作。播控是通过监在视频播放中,暂停、继续播放和进度拖动是常见的操作。播控是通过监听图片的单击事件实现的。听图片的单击事件实现的。在图片按钮被单击后,首先判断当前视频的状态,如果是播放状态,则调在图片按钮被单击后,首先判断当前视频的状态,如果是播放状态,则调用用 MediaPlayer MediaPlayer 类类 的的 pause()pause()方法暂停播放,同时更换播控的图片,显示播方法暂停播放,同时更换播控的图片,显示播放按钮。如果是暂停状态,则调用放按钮。

8、如果是暂停状态,则调用MediaPlayer MediaPlayer 类的类的 start()start()方法继续播放,方法继续播放,同时更换播控的图片,显示暂停按钮。播放和暂停页面如图同时更换播控的图片,显示暂停按钮。播放和暂停页面如图 9.2 9.2 和图和图 9.3 9.3 所所示。示。图 9.2 播放状态图 9.3 暂停状态 拖动进度条进行快进和快退是通过监听拖动进度条进行快进和快退是通过监听 OnSeekBarChangeListener OnSeekBarChangeListener 事件实现的,首先在代码中通过事件实现的,首先在代码中通过setOnSeekBarChangeLi

9、stener()setOnSeekBarChangeListener()为拖动条为拖动条设置事件监听,然后重写设置事件监听,然后重写 OnseekBarChangeListener OnseekBarChangeListener 的回调函数,在不同的回调函数,在不同的事件触发下执行不同的动作。的事件触发下执行不同的动作。在在 OnseekBarChangeListener OnseekBarChangeListener 的回调函数中,的回调函数中,onProgressChanged onProgressChanged 在拖动条发生改变时回调,并回调滑块当前的位置,在其中可以根据滑块的在拖动条发

10、生改变时回调,并回调滑块当前的位置,在其中可以根据滑块的位置计算需要定位的视频位置,然后调用位置计算需要定位的视频位置,然后调用 MediaPlayer MediaPlayer 的的seekTo()seekTo()方法跳方法跳转到对应的位置。转到对应的位置。onStartTrackingTouch onStartTrackingTouch 在拖动条被触摸时回调,其中在拖动条被触摸时回调,其中可以调用可以调用MediaPlayer MediaPlayer 的的 pause()pause()方法暂停视频的播放。方法暂停视频的播放。onStopTrackingTouch onStopTracking

11、Touch 在拖动条被释放时回调,此时快进或快退已经在拖动条被释放时回调,此时快进或快退已经完成,调用完成,调用 MediaPlayer MediaPlayer 的的 start()start()方法继续播放。方法继续播放。在播放的过程中,需要根据当前视频播放的时间实时更新进度和时间显在播放的过程中,需要根据当前视频播放的时间实时更新进度和时间显示的进度,可以通过示的进度,可以通过Handler Handler 和和 Runnable Runnable 任务实现。任务实现。9.1.4 9.1.4 横屏设置横屏设置 在视频播放中,一般会自动切换到横屏显示,即视频的宽比高大,这可在视频播放中,一般

12、会自动切换到横屏显示,即视频的宽比高大,这可以在声明以在声明 Activity Activity 时通过指定时通过指定 android:screenOrientation android:screenOrientation 属性实现。属性实现。android:screenOrientation android:screenOrientation 属性支持属性支持 3 3 种取值,种取值,landscapelandscape强强制横屏显示,制横屏显示,portraitportrait强制竖屏显示,默认值为强制竖屏显示,默认值为unspecifiedunspecified,显示方,显示方向跟随系统

13、屏幕旋转的方向。向跟随系统屏幕旋转的方向。9.2 9.2 9.2 9.2 本章小结本章小结本章小结本章小结 本章我们分模块介绍了一个视频播放页面的实现,首先介绍了界面的布本章我们分模块介绍了一个视频播放页面的实现,首先介绍了界面的布局方式,可以看到相对布局和线性布局在实际开发中的灵活组合和应用。然局方式,可以看到相对布局和线性布局在实际开发中的灵活组合和应用。然后介绍了控件和播放器的初始化,回顾了通过后介绍了控件和播放器的初始化,回顾了通过 Intent Intent进行数据传递的操作。进行数据传递的操作。后面通过对播控和进度控制的分析,展示了后面通过对播控和进度控制的分析,展示了 Andro

14、id Android 中基于回调的事件监中基于回调的事件监听机制和使用听机制和使用 Handler Handler 实现在线程中异步刷新实现在线程中异步刷新 UI UI 页面的操作。最后通过页面的操作。最后通过将将 Activity Activity 设置成横屏显示,熟悉了在设置成横屏显示,熟悉了在 AndroidMainfest.xml AndroidMainfest.xml 文件中文件中对对 Activity Activity 进行属性设置的方法。需要指出的是,在进行属性设置的方法。需要指出的是,在 Android Android 的的 xml xml配配置文件中,可以对界面的视图和各个组件做各种属性的设置,本书并不能一置文件中,可以对界面的视图和各个组件做各种属性的设置,本书并不能一一涵盖,需要各位读者在开发过程中不断进行积累和熟悉。一涵盖,需要各位读者在开发过程中不断进行积累和熟悉。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!