ImageVerifierCode 换一换
格式:PPTX , 页数:30 ,大小:2.46MB ,
资源ID:4149538      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4149538.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(佛山科学技术学院android安卓二维图像的处置市公开课一等奖百校联赛获奖课件.pptx)为本站上传会员【天****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

佛山科学技术学院android安卓二维图像的处置市公开课一等奖百校联赛获奖课件.pptx

1、第第6章章 二维图像处理二维图像处理 -以游戏开发为根本以游戏开发为根本移动应用开发技术移动应用开发技术第第1页页-2-本章目标掌握Bitmap/BitmapFactory认识位图缩放与图像变换了解Canvas/Paint了解View/SurfaceView了解线程控制下图像处理与动画第第2页页6.1Android二维游戏开发视图Android游戏开发中惯用三种视图:view视图、SurfaceView视图和GLSurfaceView视图。View视图:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;必须在UI根本程内更新画面,速度较慢。SurfaceView视图:基于view

2、视图进行拓展视图类,更适合2D游戏开发;是view子类,类似使用双缓冲机制,在新线程中更新画面所以刷新界面速度比view快。在一个新开启线程中重新绘制画面,主动更新画面。GLSurfaceView视图:基于SurfaceView视图再次进行拓展视图类,是专用于3D游戏开发视图;是SurfaceView子类(openGL专用)。第第3页页6.1Android二维游戏开发视图(2)主动更新需要一个单独thread不停重绘人状态,比如一个人在一直跑动。防止阻塞mainUIthread。所以显然view不适当,需要surfaceView来控制。依据游戏特点,更新画面类型普通分为以下两类:(1)被动更新

3、画面画面更新依赖于onTouch来更新,比如棋类游戏,能够直接使用invalidate。因为这种情况下,这一次Touch和下一次Touch需要时间比较长些,不会产生影响。第第4页页6.1.1View视图框架对于常规游戏,在View中需要处理以下3种问题:控制事件、刷新View、绘制View。6.1Android二维游戏开发视图(1)处理按键事件onKeyDown,屏幕触控onTouchEvent以及Sensor重力感应等方法。(2)刷新view方法这里主要有invalidate(intl,intt,intr,intb)刷新局部,四个参数分别为左、上、右、下。(3)绘制View主要是onDraw

4、)中经过形参canvas来处理,相关绘制主要有drawRect、drawLine、drawPath等。第第5页页6.1.2SurfaceView视图框架6.1Android二维游戏开发视图SurfaceView视图和View视图最本质区分是View视图要在UI根本程中更新画面,surfaceView视图是在一个新起单独线程中能够重新绘制画面而,所以不会阻塞UI根本程。但这也带来事件同时问题,也包括到线程同时。SurfaceView视图原理第第6页页在游戏中,普通不会等用户每次触发了按键事触屏事件才重绘画布,而是会定义一个时间去刷新画布;比如倒计时、动态花草、流水等,这些游戏元素并不会跟玩家交

5、互,但却都是动态。所以游戏开发中,会有一个线程不停去重绘画布,实时更新游戏元素状态。6.1.2SurfaceView视图框架6.1Android二维游戏开发视图游戏中除用画布给玩家最直接动态展示外,还有很多逻辑需要不间断地去更新,比如游戏中钱币更新和AI(人工智能)行为等等。Android中SurfaceView类就是双缓冲机制,开发采取自动刷新屏幕游戏时尽可能使用SurfaceView类,这么效率较高,而且SurfaceView类功效也愈加完善。第第7页页6.2惯用绘图类在Android下进行2D绘图最惯用就是Paint类、Canvas类、Bitmap类和BitmapFactory类。其中P

6、aint类代表画笔,Canvas类代表画布。6.2.1画笔PaintPaint画笔是绘图辅助类,普通它是作为画布参数来实现对应效果,Paint类中包含文字与位图样式、颜色等属性信息。6.2.2画布CanvasCanvas类提供了两个结构函数:Canvas():创建一个空Canvas对象。Canvas(Bitmapbitmap):创建一个以bitmap位图为背景Canvas。Canvas类提供了很多对应drawXxx()方法,含有各种类型,能够画出点、线、矩形、圆形、椭圆、文字、位图等。第第8页页6.2惯用绘图类6.2.3Bitmap类Bitmap类代表位图,不但能够获取图像文件信息,对图像进行

7、剪切、旋转、缩放等操作,而且还能够指定保留图像文件格式。6.2.4BitmapFactory类该类为一个工具类,用于从不一样数据源解析和创建Bitmap对象。第第9页页6.2.5基础实例:游戏角色行走控制6.2惯用绘图类本例实现对RGP类型游戏人物行走进行控制。人物行走图片素材人物行走实例运行界面第第10页页6.3绘制2D图像Android提供了强大二维图形库用于绘制2D图像,惯用是绘制几何图形、文本、路径和图片等。6.3.1绘制文本在开发游戏过程中,尤其是RPG(角色)类游戏时,显示文字信息多用绘制文本方式。第第11页页6.3绘制2D图像6.3.2绘制几何图形Canvas类提供了丰富绘制几何

8、图形方法,包含点、线、弧、圆形、矩形等。第第12页页6.3绘制2D图像6.3.3绘制路径Android中绘制路径有创建路径和绘制订义好路径两种方式。创建路径能够使用android.graphics.Path类实现。6.3.4绘制图片第第13页页6.4图像特效 在在Android中可认为图像添加旋转、缩放、倾斜、平移中可认为图像添加旋转、缩放、倾斜、平移和渲染等特效。和渲染等特效。postXXX()方法采取前乘方式设置Matrix值,设置操作最先发生。在AndroidAPI中提供setXXX()、postXXX()、preXXX()三种方式:setXXX()方法用于直接设置Matrix值,每使用

9、一次,整个Matrix都会改变;postXXX()方法采取后乘方式设置Matrix值,能够连续屡次使用post以完成多个变换第第14页页6.4.1旋转图像6.4图像特效使用android.graphics.Matrix类提供setRotate()、postRotate()和preRotate()三个方法。使用android.graphics.Matrix类提供setScale()、postScale()和preScale()三个方法。6.4.2缩放图像使用android.graphics.Matrix类提供setSkew()、postSkew()和preSkew()三个方法。6.4.3倾斜图像

10、第第15页页6.4图像特效使用android.graphics.Matrix类提供setTranslate()、postTranslate()和preTranslate()三个方法。Android中渲染图像主要应用BitmapShader类,创建该类对象可经过以下结构方法:BitmapShader(Bitmapbitmap,Shader.TileModetileX,Shader.TileModetileY)其中bitmap参数用于指定一个位图对象;tileX参数用于指定水平方向图像重复方式;tileY参数用于指定垂直方向图像重复方式。注意:Shader.TileMode类型参数包含CLAMP(

11、用边界颜色填充剩下空间)、MIRROR(镜像方式)和REPEAT(重复方式)3个可选值。6.4.4平移图像6.4.5渲染图像第第16页页6.5剪切区域6.5.1剪切区域原理剪切区域也称可视区域,是由画布进行设置,指是在画布上设置一块区域,设置了可视区域以后,将看不见区域以外绘制任何内容。6.5.2基础实例1:RPG游戏地图生成本例实现二维RGP类型游戏中地图编辑与生成。RPG游戏地图素材MapWin软件界面游戏地图生成实例运行界面第第17页页6.5剪切区域6.5.3基础实例2:游戏中自动滚屏本例实现射击类游戏或过关类游戏中背景自动滚动。自动滚屏背景素材自动滚屏实例运行界面第第18页页6.6游戏

12、动画在Android中提供了逐帧动画和补间动画两种动画类型,均能够在XML文件中定义动画资源文件。另外,也能够经过重写AnimationapplyTransformation()函数实现自定义动画效果。6.6.1逐帧动画逐帧动画就是按次序播放静态图像,先要在定义一组生成动画图片资源。!此处省略部分 标识-第第19页页6.6游戏动画6.6.2补间动画补间动画是经过对场景里对象不停做图像变换(平移、缩放、旋转)来产生动画效果。在实现补间动画时,只需要定义动画开始和结束关键帧。在Android中,提供了透明度渐变动画、旋转动画、缩放动画和平移动画四种补间动画。重写AnimationapplyTran

13、sformation()函数,然后通常要实现initialize()函数,这是一个回调函数,告诉Animation目标View大小,能够初始化一些相关参数。在绘制动画过程中会重复调用applyTransformation()函数,参数interpolatedTime值(值为从0到1)在每次调用中都会改变。6.6.3自定义动画第第20页页6.7综合实例一:小小弹球功效描述关键技术本例实现一款简单弹球游戏,利用触屏控制底部弹板弹起小球;游戏失败后,再次触屏能够重启游戏。本例实现关键是Timer类使用和小球与边界、弹板是否接触计算。代码以下所表示:final Timer timer=new Time

14、r();timer.schedule(new TimerTask()Overridepublic void run()if(ballX=(screen_width-ball_size)xSpeed=-xSpeed;if(ballY=(rectY-ball_size)&ballX=rectX&ballX=(rectY-ball_size)&(ballX (rectX+rect_width)isGameOver=true;timer.cancel();ballX+=xSpeed;ballY+=ySpeed;Message msg=new Message();msg.what=1;handler.s

15、endMessage(msg);,0,300);new Thread(this).start();第第21页页6.7综合实例一:小小弹球实例拓展为游戏添加背景图,用图片资源替换游戏中采取绘图函数实现小球和弹板;用重力传感器控制弹板移动。弹球图片素材弹球实例运行界面第第22页页6.7综合实例二:动态游戏导航界面功效描述关键技术本例实现一个图形化动态游戏菜单界面。本例实现关键是依据游戏不一样状态标识绘制不一样界面。代码以下所表示:private void drawMenu(Canvas canvas)canvas.drawBitmap(menu0,0,0,paint);/绘制菜单界面背景canva

16、s.clipRect(240,260,240+menu1.getWidth()/6,260+menu1.getHeight();/剪切菜单项区域canvas.drawBitmap(menu1,240-menuIndex*menu1.getWidth()/6,260,paint);/绘制当前菜单项canvas.clipRect(205,350,234,370,Op.UNION);/剪切左切换按钮区域canvas.drawBitmap(menu2,205,350,paint);/绘制左切换按钮canvas.clipRect(290,350,319,370,Op.UNION);/剪切右切换按钮区域c

17、anvas.drawBitmap(menu2,290,330,paint);/绘制右切换按钮/剪切花瓣区域 canvas.clipRect(flowerX,flowerY,flowerX+15,flowerY+15,Op.UNION);canvas.drawBitmap(flowerframeIndex,flowerX,flowerY,paint);/绘制花瓣 第第23页页实例拓展6.7综合实例二:动态游戏导航界面实现游戏处于菜单状态下多数花瓣不停飘落效果。游戏动态导航花瓣效果第第24页页6.7综合实例三:打地鼠功效描述关键技术本例实现一个打地鼠游戏。在一个有多个“洞穴”场景中,每个“洞穴”随

18、机显示地鼠,用户能够用手触摸出现地鼠。假如触摸到则该地鼠不再显示,同时在屏幕上经过消息提醒框显示打到了几只地鼠。本例实现关键是怎样在指定位置随机显示地鼠,这里主要是经过线程与消息处理进行控制。首先使用Thread线程对象统计地鼠出现位置,然后经过Handler消息控制地鼠出现。经过Handler消息控制地鼠出现关键代码以下所表示:handler=new Handler()Overridepublic void handleMessage(Message msg)int index=0;if(msg.what=0 x101)index=msg.arg1;/获取位置索引值mouse.setX(po

19、sitionindex0);/设置X轴位置mouse.setY(positionindex1);/设置Y轴位置mouse.setVisibility(View.VISIBLE);/设置地鼠显示 super.handleMessage(msg);第第25页页使用Thread线程对象统计地鼠出现位置关键代码以下所表示:6.7综合实例三:打地鼠Thread t=new Thread(new Runnable()Overridepublic void run()int index=0;/创建一个统计地鼠位置索引值while(!Thread.currentThread().isInterrupted()

20、index=new Random().nextInt(position.length);/产生一个随机数Message m=handler.obtainMessage();/获取一个Messagem.what=0 x101;/设置消息标识m.arg1=index;/保留地鼠标位置索引值handler.sendMessage(m);/发送消息try Thread.sleep(new Random().nextInt(500)+500);/休眠一段时间 catch(InterruptedException e)e.printStackTrace(););t.start();/开启线程打地鼠游戏图片

21、素材打地鼠游戏运行界面第第26页页6.7综合实例四:游戏中瞄准镜功效描述关键技术本例实现射击类游戏中瞄准镜随触屏手指移动效果。实现本例关键是对放大图像局部抠取及平移放大图像时矩阵位置计算。创建圆形图像关键代码以下所表示:shader=new BitmapShader(bitmap_bg_big,TileMode.CLAMP,TileMode.CLAMP);shapeDrawable=new ShapeDrawable(new OvalShape();/创建圆形ShapeshapeDrawable.setBounds(0,0,RADIUS*2,RADIUS*2);/设置圆外切矩形shapeDra

22、wable.getPaint().setShader(shader);/设置画笔形状平移矩阵新位置计算代码以下所表示:matrix.setTranslate(RADIUS-x*FACTOR,RADIUS-y*FACTOR);/平移矩阵shapeDrawable.getPaint().getShader().setLocalMatrix(matrix);shapeDrawable.setBounds(x-RADIUS,y-RADIUS,x+RADIUS,y+RADIUS);/圆外切矩形 瞄准镜实例图片素材瞄准镜实例运行界面第第27页页6.7综合实例五:发疯小猪功效描述关键技术本例实现一只小猪在围

23、栏内左右两个方向往返奔跑,折返条件是碰到围栏边缘。在实现本例过程中,最关键技术就是经过动画形式显示小猪奔跑状态,这里主要用到Animation对象获取动画资源,经过重写该对象onAnimationEnd()方法并调用startAnimation()方法实现小猪奔跑状态切换及动画播放。发疯小猪系列图片素材发疯小猪实例运行界面第第28页页6.7综合实例六:开心涂鸦功效描述关键技术本例实现一个代表明板空白区域,用户能够经过菜单项选择择画笔在白板上随意绘制(文字和各种图案等),并能够将绘制内容保留到SD卡中。在实现过程中,主要用到是保留画板内容时,调用Bitmap类compress()方法将绘图内容压

24、缩为PNG格式输出到文件输出流对象中。关键代码以下所表示:public void saveBitmap(String fileName)throws IOException File file=new File(/sdcard/pictures/+fileName+.png);/创建文件对象file.createNewFile();/创建一个新文件FileOutputStream fileOS=new FileOutputStream(file);/创建一个文件输出流对象/将绘图内容压缩为PNG格式输出到输出流对象中cacheBpress(Bitmap.CompressFormat.PNG,100,fileOS);fileOS.flush();/将缓冲区中数据全部写出到输出流中fileOS.close();/关闭文件输出流对象第第29页页作业:P198-2(2)、(4)要求写出关键程序代码第第30页页

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服