关闭

android菜鸟飞翔之路——SurfaceView学习

标签: androidSurfaceView动画
539人阅读 评论(2) 收藏 举报
分类:

         SurfaceView继承自View,但它与View不同,View是在UI的主线程中更新画面的,而SurfaceView是在一个新线程中更新画面。View的特性决定了它不适合做动画,因为如果画面时间过长,那么住UI线程就会被正在画的函数阻塞。所以Android中通常用SurfaceView显示动画效果。

       新建一个类,继承SurfaceView,同时实现SurfaceHolder.Callback接口,就创建了带有生命周期的回调函数并实现了SurfaceView的类。实现了SurfaceHolder.Callback接口后SurfaceView中三个重要的生命周期回调函数:

1.public abstract void surfaceCreated(SurfaceHolder holder)在SurfaceView创建时调用该函数。

2.public abstract void surfaceChanged(SurfaceHolder holder, int format, int width, int height),在SurfaceView改变时调用该函数。

3.public abstract void surfaceDestroyed(SurfaceHolder holder)在SurfaceView销毁前调用该函数。

       SurfaceView中最重要的方法应该是protected void onDraw(Canvas canvas),它是用来绘制SurfaceView画面的,其中的参数canvas 是该SurfaceView的画笔。每一次SurfaceView中画面的改变都是调用了该方法。

       通常方法是:新建一个线程类,每隔一个周期用一次SurfaceViewdeOnDraw()方法,而OnDraw()方法中的画面也有一个线程在时时改变,这样后一个线程类实现了OnDraw()画面中显示内容的变化,前一个线程类时时刷新画面,这就形成了动画。

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3095次
    • 积分:103
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:1篇
    • 译文:0篇
    • 评论:3条
    文章分类
    文章存档
    最新评论