Android設定SurfaceView任意大小和任意位置
阿新 • • 發佈:2018-12-20
1. 程式碼
public void init() { // FrameLayout ViewGroup.LayoutParams framelayout_params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); mFrameLayout = new FrameLayout(this ); mFrameLayout.setLayoutParams(framelayout_params); // Cocos2dxEditText layout ViewGroup.LayoutParams edittext_layout_params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); Cocos2dxEditText edittext = new Cocos2dxEditText(this); edittext.setLayoutParams(edittext_layout_params); // ...add to FrameLayout mFrameLayout.addView(edittext); ////////////////////////////////////////// // Added by Myarrow on 2014-10-28 start // Create SurfaceView for MediaPlayer mMediaPlayView = new SurfaceView(this); //mMediaPlayView.setBackgroundResource(cn.xx.yy.R.drawable.videostart); mFrameLayout.addView(mMediaPlayView); // Create SurfaceView for camera preview mCameraView = new SurfaceView(this); mCameraView.setZOrderOnTop(true); FrameLayout.LayoutParams cameraFL = new FrameLayout.LayoutParams(320, 240,Gravity.TOP); // set size cameraFL.setMargins(900, 50, 0, 0); // set position mCameraView.setLayoutParams(cameraFL); mFrameLayout.addView(mCameraView); // Added by MyArrow end // Cocos2dxGLSurfaceView this.mGLSurfaceView = this.onCreateView(); //this.mGLSurfaceView.setBackgroundColor(Color.BLUE); // ...add to FrameLayout mFrameLayout.addView(this.mGLSurfaceView); // Switch to supported OpenGL (ARGB888) mode on emulator if (isAndroidEmulator()) this.mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0); // Added by MyArrow on 2014-10-28 this.mGLSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 0); this.mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT); this.mGLSurfaceView.setZOrderOnTop(true); // Added by MyArrow end this.mGLSurfaceView.setCocos2dxRenderer(new Cocos2dxRenderer()); this.mGLSurfaceView.setCocos2dxEditText(edittext); // Set framelayout as the content view setContentView(mFrameLayout); }