Himi 原创, 转载请注明! 谢谢。
原文地址:http://blog.csdn.net/xiaominghimi/archive/2010/12/21/6090631.aspx
各位童鞋请你们注意:surfaceview中确实有 onDraw这个方法,但是surfaceview不会自己去调用!!!
而我代码中的ondraw 也好 draw 也好,都是我自己定义的一个方法。。。放在线程中不断调用的,一定要注意!!
其实上一篇分析surfaceview的文章就是一个简单的游戏框架了,当然这里再强调一下,简单的游戏框架,所以不要高手们不要乱喷~
这个Demo是给群里一童鞋写的一个对图片操作以及按键处理,游戏简单框架的一个demo,这里放出给大家分享~
备注1
此方法是用来响应按键!如果是自己定义一个继承自View的类,重新实现onKeyDown方法后,只有当该View获得焦点时才会调用onKeyDown方法,Actvity中的onKeyDown方法是当所有控件均没有处理该按键事件时,才会调用.
备注2
这里也是对屏幕进行刷屏操作,其实这也只是一种,之前文章里我也用到drawRGB的方法同样实现,当然也可以用fillRect等来刷屏。
那么这里我想说下,在继承view中,因为onDraw方法是系统自动调用的,不像在surfaceview这里这样去在run里面自己去不断调用,在view中我们可以抵用invalidate()/postInvalidate() 这两种方法实现让系统调用onDraw方法,这里也是和surfaceview中的不同之一!
备注3
这里canvas.save();和canvas.restore();是两个相互匹配出现的,作用是用来保存画布的状态和取出保存的状态的。这里稍微解释一下,
当我们对画布进行旋转,缩放,平移等操作的时候其实我们是想对特定的元素进行操作,比如图片,一个矩形等,但是当你用canvas的方法来进行这些操作的时候,其实是对整个画布进行了操作,那么之后在画布上的元素都会受到影响,所以我们在操作之前调用canvas.save()来保存画布当前的状态,当操作之后取出之前保存过的状态,这样就不会对其他的元素进行影响
对于canvas.save();和canvas.restore(); 还有不少童鞋不懂,OK、我再补充点:
代码段1:
代码段2:
上面这两个代码片段中我们都假设有两张图片 bmp1和bmp2,并且都画在画布上!
那么代码段1和代码段2的不同:
代码段1中我们进行画布缩放的之前保存了画布状态,做了缩放操作之后又取出之前保存的状态,这样做是为了保证bmp2正常画出来不收到缩放的影响!
代码段2里,画了bmp1后就执行了缩放操作,并且没有保存状态!紧接着画了bmp2,那么bmp2也会一样受到缩放的影响!!
(推荐大家订阅本博客,因为咱的更新速度可是很快的~娃哈哈)
源码下载地址: http://download.csdn.net/source/2927823
分享到:
相关推荐
Android Wifi开发的Demo程序,包括Wifi的搜索、连接、数据的传输。
android游戏开发例子程序代码,对学习了解游戏框架的搭建很有帮助。
Android和ReactNative混合开发Demo,包含Android原生加载RN页面,Android原生调用RN函数,RN函数调用原生函数
android开发的demo
Android mvvm 框架,最流行的mvvm demo 无bug
自己写的一个android游戏小Demo,可供初学者参考。
android 串口测试demo 代码简单 无bug 完美运行 android 串口测试demo 代码简单 无bug 完美运行 android 串口测试demo 代码简单 无bug 完美运行 android 串口测试demo 代码简单 无bug 完美运行 android 串口测试demo...
android nfc 开发demo
这个demo实现了Android串口开发,实现Android发送串口命令到硬件,使硬件执行相应是命令操作
android封装开发框架,包含okhttp网络请求,butterknife和Gson封装工具类等,并且使用了MVC模式,里面编写了网络请求demo以及基类抽取
一个Android App快速开发框架。.zip,AndroidQuick项目旨在提供一套进行Android APP快速开发的代码库。 AndroidQuick包含了开发一个APP所涉及到的常用的架构、模块、功能、技术点、解决方案等,每个部分附以详细的...
自己写的android布局管理demo 简单易懂 欢迎下载参考
android studio 蓝牙开发demo
人物走动 demo android人物走动demo
这里面有很多android开发中所使用的控件,并且以一种交互式的界面将其展现出来,希望能对android开发初学者有所帮助。
Android 屏幕旋转Demo
很简单的一个屏幕保护Demo,唯一遗憾的是android4.0后,对Home键的控制。
Android屏幕旋转Demo
android 下的游戏引擎demo工程源码
android nfc开发demo。本人在里面写了不少注释,还有经过几天开发,这个demo已经应用公司app。根据这个demo可以写很多版本的简化版。我的csdn博客地址:http://blog.csdn.net/qq_16064871。我在博客中还有nfc开发...