ANDROID课程讲义---图形图像处理View类开发框架在View类框架中,任何自定义的View类都只需要重写onDraw()方法来进行界面的显示onDraw()方法不能被直接调用,想要重新加载界面通常有两种方法,一种是在Handler中调用invalidate,另一种是直接在线程中调用postInvalidate()invalidate()不能直接在工作者线程中进行调用,因为它违背了单线程模型,而android的UI操作并不是线程安全的
而postInvalidate()可以在工作者线程中直接进行调用图形图像开发基础图形图像开发基础SurfaceView类开发框架surfaceView继承自View类,它通过一个新线程来更新画面
因此,SurfaceView更适合需要快速加载UI,或渲染代码阻塞UI线程的时间过长的情形SurfaceView封装了一个Surface对象,而不是Canvas,这一点对于那些资源敏感的操作特别有用SurfaceView一般通过使用SurfaceHolder类来控制Canvas在其surface上的操作,SurfaceHolder类可以通过getHolder()来获得图形图像处理基础SurfaceView类开发框架SurfaceHolder中的几个重要的方法lockCanvas()方法用于锁定画布,这样Surface中就可以指定画布了,之后就可以在画布上进行绘画unlockCanvasAndPost(Canvascanvas):用于释放处于锁定状态的Canvas当Surface的状态发生改变时,可以通过SurfaceHolder
Callback来获取这些信息SurfaceHolder
Callback有三个重要的方法,surfaceChanged()、surfaceCreated()、surfaceDestroye