Android 理解表面层概念

Android 理解表面层概念,android,surfaceholder,Android,Surfaceholder,我想写一个让球在屏幕上移动的程序,因为这个原因,我读了很多教程,但我不明白这句话: mHolder = getHolder(); mHolder.addCallback(this); addCallback方法中的“this”参数是什么?我为什么使用这种方法? 我读过关于SurfaceView和SurfaceHolder和Canvas的书,但我不能很好地理解SurfaceHolder。它有什么作用 我知道也许我的问题很愚蠢,但这是一个问题!请解释一下这个概念 “这”是一个基本的Java/OO概

我想写一个让球在屏幕上移动的程序,因为这个原因,我读了很多教程,但我不明白这句话:

mHolder = getHolder();
mHolder.addCallback(this);
addCallback
方法中的“
this
”参数是什么?我为什么使用这种方法? 我读过关于
SurfaceView
SurfaceHolder
Canvas
的书,但我不能很好地理解
SurfaceHolder
。它有什么作用

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

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

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

至于SurfaceHolder的“概念”,它只是应用程序代码与Surface交互的界面。它用在。。。查找私有SurfaceHolder mSurfaceHolder声明


这是100%的猜测,但我认为SurfaceHold是以这种方式分离出来的,因为设计师设想使用其他类型的SurfaceView,并希望应用程序代码与之交互的标准方式。

谢谢回复,但我无法理解getHoder()方法。这个方法做什么?SurfaceView.getHolder()返回用于与曲面交互的SurfaceHolder接口。我不知道还有什么比这更好的解释。也许仔细看看SurfaceView.java和SurfaceHolder.java会更清楚。