帧动画 FrameMovie
来源:互联网 发布:指画用什么软件 编辑:程序博客网 时间:2024/04/28 00:26
public class FrameMovie extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(new FrameMovieView(this));}}class FrameMovieView extends SurfaceView implements Callback,Runnable{private SurfaceHolder mSurfaceHolder;private Thread mThread;private Canvas mCanvas;private boolean mFlag;private Bitmap[] mFishBitmaps=new Bitmap[10];private int mCurrentFrame;private Paint mPaint;public FrameMovieView(Context context) {super(context);mSurfaceHolder=this.getHolder();mSurfaceHolder.addCallback(this);mPaint=new Paint();mPaint.setColor(Color.WHITE);mPaint.setAntiAlias(true);setFocusable(true);for (int i = 0; i < mFishBitmaps.length; i++) {mFishBitmaps[i]=BitmapFactory.decodeResource(getResources(), R.drawable.fish0+i);}}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {// TODO Auto-generated method stub}@Overridepublic void surfaceCreated(SurfaceHolder holder) {mFlag=true;mThread=new Thread(this,"My Thread");mThread.start();}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {mFlag=false;}@Overridepublic void run() {while (mFlag) {long start=System.currentTimeMillis();myDraw();logic();long end=System.currentTimeMillis();if((end-start)<50){try {Thread.sleep(50-(end-start));} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}private void logic() {mCurrentFrame++;if(mCurrentFrame>=mFishBitmaps.length){mCurrentFrame=0;}}private void myDraw() {mCanvas=mSurfaceHolder.lockCanvas();if (mCanvas != null) {mCanvas.drawColor(Color.WHITE);mCanvas.drawBitmap(mFishBitmaps[mCurrentFrame], 0,0,mPaint);}mSurfaceHolder.unlockCanvasAndPost(mCanvas);}}
问题一:
private void logic() {mCurrentFrame++;if(mCurrentFrame>=mFishBitmaps.length){mCurrentFrame=0;}}在刚开始写这个函数的时候将if(mCurrentFrame>=mFishBitmaps.length)写成if(mCurrentFrame>mFishBitmaps.length)导致画面播放一会之后出现 java.lang.ArrayIndexOutOfBoundsException
- 帧动画 FrameMovie
- 动画__帧动画
- 转场动画 帧动画
- 动画 AnimationDrawable 帧动画
- 动画----帧动画
- 安卓补间动画、帧动画
- Android动画-帧动画
- Android动画--帧动画
- egret_gif动画(帧动画)
- android动画 -- 帧动画 补间动画
- 属性动画,补间动画,帧动画
- View动画、帧动画、属性动画
- Android动画-帧动画&补间动画
- Android加载动画 旋转动画 、帧动画
- 帧动画、补间动画、属性动画
- 动画(过渡动画、关键帧动画)
- Android动画-帧动画-属性动画
- 帧动画&补间动画&属性动画
- Android中悬浮窗口的实现原理和示例代码
- 转手机
- 正确的做事和做正确的事
- 其实只是想开个博客记录一下自己的成长历程
- 程序员工作中沟通的 必要性,有效性,技巧性
- 帧动画 FrameMovie
- 浅析类的 默认构造函数, 拷贝构造函数, 赋值拷贝函数“=”
- c# 中的反射机制的一种作用
- 如何创建哈夫曼树
- 程序员面试题精选100题(55)-不用+、-、×、÷数字运算符做加法
- 整理牛人看文献的方法
- 最全Vector用法总结
- java web学习笔记一
- 我们的国庆节