Android开发之对Frame动画播放的补充

Android开发之对Frame动画播放的补充

/*

* Android开发之对Frame动画播放的补充

* 北京Android俱乐部群:167839253

* Created on: 2012-5-08

* Author: blueeagle

* Email: liujiaxiang@gmail.com

*/

上次谈及Frame动画播放,需要有很多帧的图片。可以选择定义一个AnimationDrawable对象,然后加载需要的Frame帧动画图片。一般而言,图片在没有特殊要求的情况下,一系列的图片都做到了一张图片上,这就要求开发人员懂得在图片上做裁剪。需要的地方裁出来就可以了。

这里涉及几个知识点:

剪切区域:也称可视区域,是由画布进行设置的,它指的是在画布上设置一块区域,当画布一旦设置了可视区域,那么除此区域外,绘制的内容都将看不到。

/*
 *  Android开发之Frame动画播放的补充
 *  frameAnimationPlus.java  
 *  Created on: 2012-5-08
 *  Author: blueeagle
 *  Email: liujiaxiang@gmail.com
 */
      canvas.clipRect(0,0,bmpboom.getWidth()/10,bmpboom.getHeight());//假设是个爆炸效果的图片,一共有10帧放在一起的
      //绘制位图
       canvas.drawBitmap(bmpboom, -currentFrame*bmpboom.getWidth()/10,0, paint);


代码解释:

currentFrame表示需要使用的当前图片向X负坐标的位移。可以选择移动帧的位置。

默认绘制在画布的(0,0)点。

将代码写入View框架的Draw()函数中,或者是SurfaceView框架的自定义绘制函数中。并做相应的刷新操作就可以了。比如View框架中可以使用invalidate()SurfaceView框架中可以使用线程的方式进行刷新。

clipRect()函数就是绘制可视区域的剪切函数,表示从(0,0)点,到(x,y)点,X,Y为参数。

如果要将位图绘制在(x,y)点的话,则代码应该如下编写:

      canvas.clipRect(x,y,x+bmpboom.getWidth()/10,y+bmpboom.getHeight());
       //绘制位图
       canvas.drawBitmap(bmpboom, x-currentFrame*bmpboom.getWidth()/10,y, paint);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值