3

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

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

什么是方法中的“ this”参数addCallback?为什么我使用这种方法?我读到了,SurfaceView但我不能很好地理解。它有什么作用?SurfaceHolderCanvasSurfaceHolder

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

4

1 回答 1

4

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

由于您的类实现了 SurfaceHolder.Callback,因此它是 SurfaceHolder.Callback的一个实例,因此它可以将对自身(“this”)的引用传递给采用 SurfaceHolder.Callback 参数的函数。

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

这是 100% 的猜测,但我认为 SurfaceHolder 是这样分离的,因为设计人员设想拥有其他类型的 SurfaceView,并希望应用程序代码与它们交互的标准方式。

于 2013-04-08T12:27:12.153 回答