Android中的OpenGL onCreate片段视图

时间:2012-07-26 10:40:17

标签: android opengl-es fragment oncreate

我已经创建了OpenGLRenderer.java类并在其中放置了一些代码,显示没有错误。然后我将此代码放在RoomFragment.java片段中创建一个视图:

public class RoomFragment extends Fragment {

/** Called when the fragment is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    GLSurfaceView view = new GLSurfaceView(this);
    view.setRenderer(new OpenGLRenderer());
    setContentView(this);
}}

但我得到了

  

构造函数GLSurfaceView(RoomFragment)未定义

  

类型RoomFragment

的方法setContentView(RoomFragment)未定义

错误。这些方法不是在头文件中实现的吗?我猜这是因为这不是一个活动,而是一个仅在按钮点击前一个片段时激活的片段(在主活动菜单选择中是活动的)。

我该如何解决这个问题?如何在片段图层中创建GLSurfaceView?

1 个答案:

答案 0 :(得分:5)

GLSurfaceView需要与Activity相关联ContextFragment不会从Activity延伸而是从它的外观延伸,您正试图从内部创建一个GLSurfaceView

此外,必须从setContentView调用Activity,基本上您所说的是“我希望此活动以**View告诉它的方式显示”。因此,您必须从Activity本身调用该方法。

尝试将GLSurfaceView放在Activity的{​​{1}}内,或者使用Fragment的{​​{1}}方法检索{ {1}}它必然会被绑定。

第二种解决方案最终会像这样:

Fragment

我不确定这是不是你要找的,让我知道它是否有效!