我想写一个程序,一个球在屏幕上移动,因为这个,我读了很多教程,我不能理解这一行:

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

this方法中的“addCallback”参数是什么?我为什么要用这种方法?
我读过关于SurfaceViewSurfaceHolderCanvas的文章,但我不能很好地理解SurfaceHolder。它有什么作用?
我知道也许我的问题很愚蠢,但这是个问题!请解释一下这个概念。

最佳答案

“this”是一个基本的Java/OO概念…这里它指的是调用mholder.addCallback()的对象。在您的类声明中,您将在顶部看到它“implements surfaceholder.callback”。
由于您的类实现了surfaceholder.callback,因此它是surfaceholder.callback的实例,因此它可以将对自身的引用(“this”)传递给接受surfaceholder.callback参数的函数。
至于surfaceholder的“概念”,它只是应用程序代码与surface交互的接口。它用于SurfaceView.java。查找private surfaceholder msurfaceholder声明。
这是100%的猜测,但我认为surfaceholder是这样分离出来的,因为设计师设想有其他类型的surfaceviews,并希望有一个标准的方式,应用程序代码与他们互动。

08-16 13:08