安卓:使用GLSurfaceView片段
问题描述:
在我的老年活动基础的解决方案里面的设置是这样的:安卓:使用GLSurfaceView片段
glSurfaceView = new GLSurfaceView(this);
registerForContextMenu(glSurfaceView);
if (supportsEs2) {
glSurfaceView.setEGLContextClientVersion(2);
renderer = new GLRenderer(context);
glSurfaceView.setRenderer(renderer);
rendererSet = true;
}
else {
Toast.makeText(context, "This device does not support OpenGL ES 2.0.",Toast.LENGTH_LONG).show();
return;
}
setContentView(glSurfaceView);
那么假设一想相同的行为,我该如何使用渲染的片段。
这是我非常基本的片段:
public class SketchBoardFragment extends Fragment{
public SketchBoardFragment(){}
public static SketchBoardFragment newInstance(){
SketchBoardFragment fragment = new SketchBoardFragment();
return fragment;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_sketch_board,container,false);
return rootView;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
((MainActivity)activity).onSectionAttached(1);
}
}
在此先感谢。
答
天真的解决方案似乎是工作:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
/*View rootView = inflater.inflate(R.layout.fragment_sketch_board,container,false);
return rootView;*/
GLSurfaceView glSurfaceView = new GLSurfaceView(getActivity());
GLRenderer renderer = new GLRenderer();
glSurfaceView.setEGLContextClientVersion(2);
glSurfaceView.setRenderer(renderer);
return glSurfaceView;
}
+0
什么是GLRenderer?是你的自定义类吗? – Devrath
我没有使用过的片段,所以我可能会失去了一些东西。但是'GLSurfaceView'可以像任何其他视图一样成为布局的一部分。您通常从'GLSurfaceView'派生自己的视图,并在您的布局xml中使用该视图。 –
这可能是真的,但是从xml加载GL表面有问题。所以,从有经验的人那里获得100%的工作解决方案会很好。 –