1. 首先,初始化系统:
rivate void sys_init(){ // 去掉标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); // 全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN , WindowManager.LayoutParams.FLAG_FULLSCREEN); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //强制为横屏 //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //强制为竖屏 // 获取屏幕的分辨率 screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏幕宽(像素,如:480px) screenHeight = getWindowManager().getDefaultDisplay().getHeight(); // 屏幕高(像素,如:800p) normalLayerZ = -((float)screenHeight/2.0f); System.out.println("screenWidth=" + screenWidth + "; screenHeight=" + screenHeight); }
2.主函数入口的onCreate函数实现:
MainMenu mainMenu; MySurfaceView mGLSurfaceView; LinearLayout imageButtonLinearLayout; ImageButton mytestButton; ImageButton mytestButton2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); sys_init(); setContentView(R.layout.main); /* -------------------- Start add ImageButtons------------------------------------- */ Context context = this.getApplicationContext(); imageButtonLinearLayout = new LinearLayout(this); imageButtonLinearLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); imageButtonLinearLayout.setOrientation(LinearLayout.VERTICAL); // add imagebuttons LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); LinearLayout imagebuttonLinearLayout = (LinearLayout) inflater.inflate(R.layout.imagebutton, imageButtonLinearLayout, false); imageButtonLinearLayout.addView(imagebuttonLinearLayout); /* -------------------- End add ImageButtons------------------------------------- */ mGLSurfaceView=new MySurfaceView(MainActivity.this); mGLSurfaceView.requestFocus();//获取焦点 mGLSurfaceView.setFocusableInTouchMode(true);//设置为可触控 gn_DB_type=dCimovDbType_Singer; mGLSurfaceView.setZOrderOnTop(true); // 置到Top层 mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSPARENT); // 设置背景为透明 // 添加3D SurfaceView (GLSurfaceView) setContentView(mGLSurfaceView); // 添加imageButtonLinearLayout (SurfaceView) addContentView(imageButtonLinearLayout, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); // 添加SurfaceView上的按钮响应事件 mytestButton=(ImageButton)findViewById(R.id.button1); mytestButton.setOnClickListener(CimovSysBtnClickListen); mytestButton2=(ImageButton)findViewById(R.id.button2); mytestButton2.setOnClickListener(CimovSysBtnClickListen); }
3.main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/cimov" android:gravity="center" > </LinearLayout>
4.imagebutton.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="2"> <EditText android:id="@+id/setup_hostip_edit" android:paddingLeft="100dp" android:layout_width="100dp" android:layout_height="50dp" android:layout_gravity="bottom" android:textSize="20sp" android:paddingBottom="8dp" android:singleLine="true" android:editable="true" /> <ImageButton android:id="@+id/button1" android:src="@drawable/icon" android:paddingLeft="100dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom" android:background="@null" /> <ImageButton android:id="@+id/button2" android:src="@drawable/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom" android:background="@null" /> <ImageButton android:id="@+id/button3" android:src="@drawable/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom" android:background="@null" /> <ImageButton android:id="@+id/button4" android:src="@drawable/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom" android:background="@null" /> <Button android:id="@+id/button5" android:src="@drawable/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom" android:background="@null" /> </LinearLayout>
5.拓展说明:
在某些资料资料中,有使用FrameLayer来布局的,先添加GLSurfaceView,再添加SurfaceView,也是一样的。
本文博客源地址:http://blog.csdn.net/ypist