我想编写一个球在屏幕上移动的程序,因此,我阅读了很多教程,但我无法理解这一行:
mHolder = getHolder();
mHolder.addCallback(this);
什么是方法中的“ this
”参数addCallback
?为什么我使用这种方法?我读到了,SurfaceView
但我不能很好地理解。它有什么作用?SurfaceHolder
Canvas
SurfaceHolder
我知道也许我的问题很愚蠢,但这是一个问题!请解释一下这个概念。
我想编写一个球在屏幕上移动的程序,因此,我阅读了很多教程,但我无法理解这一行:
mHolder = getHolder();
mHolder.addCallback(this);
什么是方法中的“ this
”参数addCallback
?为什么我使用这种方法?我读到了,SurfaceView
但我不能很好地理解。它有什么作用?SurfaceHolder
Canvas
SurfaceHolder
我知道也许我的问题很愚蠢,但这是一个问题!请解释一下这个概念。
“this”是一个基本的 Java/OO 概念……这里指的是调用 mHolder.addCallback() 的对象。在您的类声明中,您将在顶部看到它“实现了 SurfaceHolder.Callback”。
由于您的类实现了 SurfaceHolder.Callback,因此它是 SurfaceHolder.Callback的一个实例,因此它可以将对自身(“this”)的引用传递给采用 SurfaceHolder.Callback 参数的函数。
至于 SurfaceHolder 的“概念”,它只是应用程序代码与 Surface 交互的接口。它在SurfaceView.java中使用...查找私有 SurfaceHolder mSurfaceHolder 声明。
这是 100% 的猜测,但我认为 SurfaceHolder 是这样分离的,因为设计人员设想拥有其他类型的 SurfaceView,并希望应用程序代码与它们交互的标准方式。