【实战一】View的双缓冲--撕衣服的实现
aide吧
全部回复
仅看楼主
level 9
_llld 楼主
我来发几篇实战教程,每个都是自己构思的思路,不一定保证是最优的思路。计划发一个撕衣服,打地鼠,老虎机,打飞机,贪吃蛇的编写,这节课使用View来实现一个撕衣服的小游戏,由于教程是边写边发,可能速度会有点慢。
2013年10月23日 06点10分 1
level 9
_llld 楼主
首先了解一下双缓冲,双缓冲指的是先将要绘制的内容绘制在内存上,然后再显示出来,达到防止屏幕闪烁,而SurfaceView就是双缓冲机制,先将内容绘制好然后提交画布才显示,我们这里使用View来进行实现。
2013年10月23日 06点10分 2
level 9
_llld 楼主
忘了准备素材,首先需要准备两张图片,一张是撕开前的图片,一张是撕开后的图片。
2013年10月23日 06点10分 3
level 9
_llld 楼主
这张图片命名为bmp1放进drawable目录下
2013年10月23日 06点10分 5
level 9
_llld 楼主
新建一个类,继承View,构造函数,绘图函数,触屏函数都写上,这些贴吧的教程都有,就不解释了。
2013年10月23日 06点10分 7
level 9
~~~~这个发源码不行吗
2013年10月23日 07点10分 9
应该是上次有人说每个吧主来个教程的,然后就有了这个贴!
2013年10月23日 07点10分
源码一定可以弄懂吗?
2013年10月23日 08点10分
level 9
_llld 楼主
可能晚上才有时间写了,刚刚一直没有什么空。
2013年10月23日 08点10分 10
level 9
_llld 楼主
刚下班吃完饭,继续更新。
2013年10月23日 11点10分 11
level 9
_llld 楼主
然后运行我们的项目,用手摸衣服,撕衣服的效果就出来了,有的书上把双缓冲也叫做截屏,用于保存之前画面的内容。以上思路为百度aide吧_llld原创,仅做学习交流之用,未经允许不得用作商业用途,可以在边上绘制一些撕边,加上声音,让效果更加逼真。
2013年10月23日 11点10分 15
level 9
up! up! veryup!
吧主伟大 ,好样的
2013年10月23日 11点10分 16
level 9
_llld 楼主
之前看见一个黑马那什么训练营的撕衣服根本没这么简洁,他的是把第二张图点击的像素点弄成透明,麻烦的要死,当然不代表我的是最优思路,如果有更好的思路实现,大家也可以提建议。
2013年10月23日 12点10分 17
以前做过撕衣服的app,但我是用修改图片透明像素的方法处理的,问下裁切图片的本质是什么。这两者在内存和性能上有和区别啊。。
2013年12月05日 03点12分
@妖僧和二 相比来说这种方法性能消耗更低。
2013年12月05日 03点12分
那内存呢。。我比较关心内存。。
2013年12月05日 03点12分
@妖僧和二 基本一样,这种占用bmp2和一个缓冲区bmp3,bmp1绘制完了可以释放掉内存,而那种占用bmp1,bmp2可以释放掉,和一个缓冲区。
2013年12月05日 03点12分
level 9
_llld 楼主
2013年10月23日 12点10分 18
level 12
我顶
2013年10月23日 14点10分 19
level 9
楼主,getWindow().setFlags(1024,1024)是什么意思?
2013年10月23日 14点10分 20
我指的是这两个数字是什么意思
2013年10月23日 14点10分
@_llld 你的意思是,全屏就是两个1024?
2013年10月23日 15点10分
@Security12345 那是几个常量值,手机能少写代码就尽量少写。
2013年10月23日 23点10分
level 5
楼主好样的!
2013年10月24日 00点10分 21
level 9
_llld 楼主
2013年10月24日 13点10分 22
@C200KNL 撕衣服都不精?
2013年10月25日 08点10分
level 7
我是来看图的
2013年10月24日 14点10分 23
怎样制作那种省流更新包?比如很多市场上比如原软件有十几兆,然后那个省流更新包一兆都不到,那种是怎样制作的?
2013年11月01日 09点11分
回复 _llld :安装包就是个压缩包,找出两个压缩包中的不同地方就行了啊
2013年12月04日 14点12分
level 9
_llld 楼主
这里补充一下使用xml实现的方法,实现方法也差不多,看个人喜好了,喜欢用xml就用xm,喜欢java代码用java代码,xml专门弄布局的话方便维护和修改,以前看见一个黑马撕衣服它的是定义两个InageView,里面那个显示撕开后的图片,外面显示撕开前的图片,然后把外面那个ImageView的点击的像素点设置为透明。我们这里使用一个ImageView来实现。
2013年10月25日 09点10分 24
level 9
_llld 楼主
使用帧布局定义一个ImageView,添加一个id。
2013年10月25日 10点10分 25
level 9
_llld 楼主
然后实现方法也差不多,获取对象,把setContextView改成我们的布局文件。
2013年10月25日 10点10分 26
1 2 尾页