GLSurfaceView glview = (GLSurfaceView)findViewById(R.id.surface); glview.setEGLConfigChooser(8, 8, 8, 8, 16, 0); glview.getHolder().setFormat(PixelFormat.RGBA_8888); glview.setZOrderMediaOverlay(true); glview.setEGLContextClientVersion(2);
@SuppressWarnings("deprecation") // FILL_PARENT still required for API level 7 (Android 2.1) @Override public void onResume() { //Log.i(TAG, "onResume()"); super.onResume(); // Create the camera preview preview = new CaptureCameraPreview(this, this); Log.i(TAG, "CaptureCameraPreview created"); // Create the GL view glView = new GLSurfaceView(this); glView.setEGLConfigChooser(8, 8, 8, 8, 16, 0); glView.getHolder().setFormat(PixelFormat.TRANSLUCENT); // Needs to be a translucent surface so the camera preview shows through. glView.setRenderer(renderer); glView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); // Only render when we have a frame (must call requestRender()). glView.setZOrderMediaOverlay(true); // Request that GL view's SurfaceView be on top of other SurfaceViews (including CameraPreview's SurfaceView). Log.i(TAG, "GLSurfaceView created"); // Add the views to the interface mainLayout.addView(preview, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); mainLayout.addView(glView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); Log.i(TAG, "Views added to main layout."); if (glView != null) glView.onResume(); }
public int startPreview(int cameraId) { if (isStarting) return -1; try { mCameraId = cameraId > mCameraNum - 1 ? 0 : cameraId; mCamera = Camera.open(mCameraId); } catch (Exception e) { return -2; } try { Camera.Parameters para = mCamera.getParameters(); choosePreviewSize(para, 1280, 720); mCamera.setParameters(para); setAutoFocus(this.isAutoFocus); } catch (Exception e) { Log.w(TAG, "startPreview setParameters:" + e.getMessage()); } mGLSurfaceView = new GLSurfaceView(mContext); mGLSurfaceView.setEGLContextClientVersion(2); mGLSurfaceView.setRenderer(this); mGLSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); mGLSurfaceView.getHolder().addCallback(this); mGLSurfaceView.getHolder().setKeepScreenOn(true); mGLSurfaceView.setZOrderMediaOverlay(isMediaOverlay); addView(mGLSurfaceView); isStarting = true; return 0; }