我想写一个球在屏幕上移动的程序,因此,我阅读了很多教程,我无法理解这一行:
mHolder = getHolder();
mHolder.addCallback(this);
this
方法中的“addCallback
”参数是什么?为什么我用这种方法?
我读到了关于SurfaceView
和SurfaceHolder
以及Canvas
但我不能理解SurfaceHolder
。它做了什么?
我知道也许我的问题很愚蠢,但这是一个问题!请解释一下这个概念。
答案 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,并希望应用程序代码与它们进行交互的标准方式。