第7章Android图形图像和多媒体开发.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

浙江农林大学Android应用程序开发第7章Android图形图像和多媒体开发2019/12/191浙江农林大学目录2019/12/1927.1图形7.2图像7.3音频和视频7.4OpenGLES编程7.5多媒体综合应用浙江农林大学7.1图形2019/12/193一个Android应用经常需要在界面上绘制各种图形,比如一个Andorid游戏会在运行时根据用户的输入状态生成各种各样的图片,使游戏变得丰富精彩,这就需要我们借助于Android图形系统的支持。Android中,绘制图像最常用的是Paint类、Canvas类、Bitmap类和BitmapFactory类。在现实生活中,我们要绘图需要画笔和画布,同样,Android绘图系统中Paint类就是画笔。Canvas类就是画布,通过这两个类就可在Android系统中绘图。浙江农林大学Canvas画布简介JAVA语言在Swing中绘图的思路是开发一个自定义类,该类继承JPanel,并且重写JPanel的paint(Graphicsg)方法即可。Android的绘图思路与此十分类似,要在Android中绘图,需要首先要铺好画布,也就是创建一个继承自View类的视图,并且在该类中重写它的onDraw(Canvascanvas)方法,然后在显示绘图的Activity中添加该视图。浙江农林大学Canvas常用绘制方法Canvas提供的绘图方法,都有一个Paint类型的参数,Paint是Android在绘图操作中十分重要的一个API,Paint表示画布Canvas上的画笔,Paint类主要用于设置绘制风格,包括画笔颜色、画笔笔触粗细、填充风格等。Paint类提供了许多设计画笔的常用方法。浙江农林大学Canvas绘制的辅助类1、Path类2、Rect类浙江农林大学7.2图像2019/12/197上一节介绍的Android图形绘制都是在程序运行时实时绘制上去的,而绘制上去的图案都是一些较为规则的形状,如果希望绘制上去的是一张已经制作好的图片,就需要使用Android绘制图像的知识。这一节我们将学习Android系统绘制图像中较为常用的Drawable类和Bitmap类。浙江农林大学Drawable和ShapDrawable通用绘图类Drawable对象是一种资源对象,当我们为Android程序添加一个Drawable资源后,AndroidSDK会为这份资源在R.java清单中创建一个ID或者称之为索引,索引名称一般为:R.drawable.file_name。浙江农林大学Bitmap和BitmapFactory图像类Bitmap类代表位图,BitmapDrawable里封装的图片就是一个Bitmap对象。把一个Bitmap对象包装成BitmapDrawable对象,需调用BitmapDrawable的构造器。需要获取BitmapDrawable所包装的Bitmap对象,则可调用BitmapDrawable的getBitmap()方法。浙江农林大学7.3音频和视频多媒体功能一直受到用户群体的关注,大多用户已经开始习惯于使用智能手机来听音乐,看视频。AndroidSDK提供了简单的API来播放音频、视频,从而让大部分的Android应用程序开发者无需为音频和视频的一些底层操作而担忧。Android提供了常见音频、视频的编码、解码机制,Android支持的音频格式较多,常见的有MP3、WAV和3GP等,支持的视频格式常见的有MP4和3GP等。浙江农林大学◆start():开始播放或者恢复播放。◆stop():停止播放。◆pause():暂停播放。MediaPlayer播放音频浙江农林大学装载音频文件的方法通常有两种重载形式,这两种方法都是MediaPlayer提供的静态方法◆staticMediaPlayercreate(Contextcontext,Uriuri):从指定URI在装载音频文件,并创建一个对应的MediaPlayer对象。◆staticMediaPlayercreate(Contextcontext,intresid):从resid资源ID对应的资源文件中装载音频文件,并创建一个对应的MediaPlayer对象。此方法一般用于装载本地音频。浙江农林大学◆voidsetDataSource(Stringpath):指定装载path路径所代表的文件。◆voidsetDataSource(FileDescriptorfd,longoffset,longlength):指定装载fd所代表的文件中从offset开始、长度为length的文件内容。◆voidsetDataSource(FileDescriptorfd):指定装载fd所代表的的文件。◆voidsetDataSource(Contextcontext,Uriuri):指定装载URI代表的文件。浙江农林大学◆setOnCompletionListener(MediaPlayer.OnCompletioListenerlistener):设置MediaPlayer在播放完成后触发的事件监听器。◆setOnErrorListener(MediaPlayer.OnErrorListenerlistener):设置MediaPlayer在播放过程中发生错误而触发的事件监听器。◆setOnPreparedListener(MediaPlayer.OnPrepareListenerlistener):设置MediaPlayer调用prepare()方法后触发的事件监听器。◆setOnSeekCompleteListener(MediaPlayer.OnSeekCompleteListenerlistener):当MediaPlyaer调用seek()方法后触发的事件监听器。浙江农林大学MediaRecorder录音浙江农林大学1、在界面布局文件中定义VideoView组件,或在代码中创建VideoView组件。2、调用VideoView的两个方法来加载指定视频。◆setVideoPath(Stringpath):加载path文件所代表的视频。◆setVideoURI(Uriuri):加载uri所对应的视频。3、调用ViedoView的start()、stop()、pause()方法来控制视频播放。VideoView播放视频浙江农林大学7.4OpenGLES编程本章前面两节介绍了Android系统的图形、图像处理,通过这两节的学习,读者完全可以开发出处理二维图形的应用,或2D游戏。经常玩游戏的读者可能会发现,市场上的游戏已经渐渐得从2D游戏过渡到了3D游戏,甚至已经慢慢地占领了手机平台。Android系统内置OpenGLES(OpenGLforEmbeddedSystem),支持3D应用的开发,也就是说开发者可以在Android平台上使用OpenGLESAPI来开发3D应用。。浙江农林大学OpenGL(全写OpenGraphicsLibrary开放图形库)是一个跨编程语言、跨平台的编程接口的API,它用于三维图像(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。OpenGL提供了一个子集:OpenGLES(OpenGLforEmbeddedSystem),用于解决在在如手机之类的小型设备上。OpenGLES是免授权费的、跨平台的、功能完善的2D和3D图形应用程序接口API,主要针对多种嵌入式系统专门设计——包括控制台、移动电话、手持设备、家电设备和汽车。OpenGLES包含浮点运算和定点运算系统描述以及EGL针对便携设备的本地视窗系统规范。OpenGLES简介浙江农林大学◆起到连接OpenGLES与Android的View层次结构之间的桥梁作用。◆使得OpenGLES库适应于Anndroid系统的Activity生命周期。◆使得选择合适的Framebuffer像素格式变得容易。◆创建和管理单独绘图线程以达到平滑动画效果。◆提供了方便使用的调试工具来跟踪OpenGLES函数调用以帮助检查错误。视图浙江农林大学一个3D图形通常是由一些小的基本元素(顶点,边,面,多边形)构成,每个基本元素都可以单独来操作。1.Vertex(顶点)2.Edge(边)3.Face(面)4.Polygon(多边形)5.Render(渲染)3D空间中绘图浙江农林大学浙江农林大学浙江农林大学1、Flatcoloring(单色)2.Smoothcoloring(平滑颜色过渡)颜色浙江农林大学7.5多媒体综合应用Android音乐播放器浙江农林大学2019/12/1925

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功