您的位置:首页 > 移动开发 > Android开发

Android开发学习SurfaceView显示动画效果

2013-05-02 13:00 615 查看
一、基础知识:

SurfaceView继承自View,View负责在主线程中更新动画,而SurfaceView是在一个新线程中更新动画。

SurfaceView类的主要方法:

// 在SurfaceView创建时调用

pubilic abstract void surfaceCreated(SurfaceHolder holder)

// 在SurfaceView改变时调用

pubilic abstract void surfaceChanged(SurfaceHolder holder, int format, int width, int height)

// 在SurfaceView销毁时调用

pubilic abstract void surfaceDestroyed(SurfaceHolder holder)

// 绘制SurfaceView画面

protected void onDraw(Canvas canvas)

(参数canvas是该SurfaceView的画笔,每一次SurfaceView中画面改变都是调用了该方法)

二、实现效果:

首先有一副图片从屏幕的左下角开始向右上方运动,当图片上沿与手机屏幕上沿相撞时,图片的水平速度大小与方向均不变,竖直方向上速度大小不变,

方向相反;当下沿相撞后,同样效果,直到图片飞出屏幕。之后,屏幕渐渐地显示一幅图片。

三、编程实现:

1. 界面编辑(res\layout\main.xml):

?
2. 代码编辑:

(\src\wyf\zcl\MyActivity.java)

?
(\src\wyf\zcl\Constant.java)

?
(\src\wyf\zcl\MySurfaceView.java)

?
(\src\wyf\zcl\OnDrawThread.java)

?
(\src\wyf\zcl\PicRunThread.java)

?
这部分代码对于我这个初学java的人来说比较吃力,但是硬着头皮看了两天,还是基本弄清了这个框架。

代码中涉及一些java的基础知识,我做了一点笔记,如下:

[ extends ]:

一个类使用关键字extends继承其他类,关键字extends出现在类声明时的类名后,

extends后面跟着的是要继承的类的名称,extends实现了继承。在Java中的类只能继承一个类。

[ super ]:

B 继承 A ,B想调用A的方法,那么就可以 用super.A的方法。如果用中文解释:super就是父类的一个别名。

[ implements ]:

implements是一个类实现一个接口用的关键字,

他是用来实现接口中定义的抽象方法

。比如:people是一个接口,他里面有say这个方法。

public interface people()

{

public say();

}

但是接口没有方法体。

只能通过一个具体的类去实现其中的方法体。

比如chinese这个类,就实现了people这个接口。

public class chinese implements peopel{

public say()

{System.out.println("你好!");}

}

[ extendsimplements区别]:

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐