【问题标题】:Understanding SurfaceHolder concept了解 SurfaceHolder 概念
【发布时间】:2013-04-08 11:51:43
【问题描述】:

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

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

addCallback 方法中的“this”参数是什么?为什么我使用这种方法? 我读到了SurfaceViewSurfaceHolderCanvas,但我不能很好地理解SurfaceHolder。它有什么作用?

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

【问题讨论】:

    标签: android surfaceholder


    【解决方案1】:

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

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

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

    这是 100% 的猜测,但我认为 SurfaceHolder 是这样分离出来的,因为设计人员设想拥有其他类型的 SurfaceView,并希望应用代码与它们进行交互的标准方式。

    【讨论】:

    • 感谢回复,但我无法理解 getHoder() 方法。这个方法是做什么的?
    • SurfaceView.getHolder() 返回用于与 Surface 交互的 SurfaceHolder 接口。我不知道还有什么比这更好的解释。也许仔细看看 SurfaceView.java 和 SurfaceHolder.java 会更清楚。
    猜你喜欢
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多