了解 SurfaceHolder 概念

Nic*_*ICE 4 android surfaceholder

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

mHolder = getHolder();
mHolder.addCallback(this);
Run Code Online (Sandbox Code Playgroud)

this方法中的“”参数是什么addCallback?为什么我使用这个方法?我读到了SurfaceViewand SurfaceHolderCanvas但我不太明白。SurfaceHolder它有什么作用?

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

Reu*_*ton 5

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

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

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

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