了解SurfaceHolder概念

时间:2013-04-08 11:51:43

标签: android surfaceholder

我想写一个球在屏幕上移动的程序,因此,我阅读了很多教程,我无法理解这一行:

mHolder = getHolder();
mHolder.addCallback(this);

this方法中的“addCallback”参数是什么?为什么我用这种方法? 我读到了关于SurfaceViewSurfaceHolder以及Canvas但我不能理解SurfaceHolder。它做了什么?

我知道也许我的问题很愚蠢,但这是一个问题!请解释一下这个概念。

1 个答案:

答案 0 :(得分:3)

“this”是一个基本的Java / OO概念......这里它指的是调用mHolder.addCallback()的对象。在您的类声明中,您将在顶部看到它“实现SurfaceHolder.Callback”。

由于您的类实现了SurfaceHolder.Callback,它 IS 是SurfaceHolder.Callback的一个实例,因此它可以将引用传递给它自己('this')到带有SurfaceHolder.Callback参数的函数

至于SurfaceHolder的“概念”,它只是应用程序代码与Surface交互的界面。它在SurfaceView.java中使用...寻找私有的SurfaceHolder mSurfaceHolder声明。

这是100%的推测,但我认为SurfaceHolder是这样分开的,因为设计师设想了其他种类的SurfaceViews,并希望应用程序代码与它们进行交互的标准方式。