⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opengl.java

📁 android 下学习openGL的一个不错demo
💻 JAVA
字号:
/*** * Excerpted from "Hello, Android!", * published by The Pragmatic Bookshelf. * Copyrights apply to this code. It may not be used to create training material,  * courses, books, articles, and the like. Contact us if you are in doubt. * We make no guarantees that this code is fit for any purpose.  * Visit http://www.pragmaticprogrammer.com/titles/eband for more book information.***/package com.mot.opengl;import android.app.Activity;import android.graphics.PixelFormat;import android.graphics.Point;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.MotionEvent;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnTouchListener;import android.widget.Toast;public class OpenGL extends Activity {		public static final int TYPE_CUBE = 100;	   public static final int TYPE_RECTANGLE = 101;	   	   private static final int MENU_CUBE = Menu.FIRST + 1;	   private static final int MENU_RECTANGLE = MENU_CUBE + 1;	   	   private GLView cube_view;	   private GLView rectangle_view;	   	   @Override	   public void onCreate(Bundle savedInstanceState) {	      super.onCreate(savedInstanceState);	      	      startRectangle();	   }	   	   private void startCube() {		   		   //if ( rectangle_view != null )		   //	   rectangle_view.surfaceDestroyed(rectangle_view.getHolder());		   		   cube_view = new GLView(this, TYPE_CUBE);		   cube_view.setOnClickListener(new OnClickListener () {			@Override			public void onClick(View v) {				// TODO Auto-generated method stub		        Toast.makeText(v.getContext(),"Click Cube",Toast.LENGTH_SHORT).show();			}	    	  	      });		  cube_view.getHolder().setFormat(PixelFormat.TRANSPARENT);		  cube_view.setOnTouchListener(mcubeTouchListener);	      setContentView(cube_view);	      	   }	   	   private void startRectangle() {		   		   //if ( cube_view != null )		//	   cube_view.surfaceDestroyed(cube_view.getHolder());		   		   rectangle_view = new GLView(this, TYPE_RECTANGLE);		   rectangle_view.setOnClickListener(new OnClickListener () {           				@Override				public void onClick(View v) {					// TODO Auto-generated method stub			        Toast.makeText(v.getContext(),"Click Rectangle",Toast.LENGTH_SHORT).show();				}		    	  		      });		   	    	//rectangle_view.setOnTouchListener(mrectangleTouchListener);		      rectangle_view.getHolder().setFormat(PixelFormat.TRANSLUCENT);		      setContentView(rectangle_view);	   }	   	   @Override	   public boolean onCreateOptionsMenu(Menu menu) {	       super.onCreateOptionsMenu(menu);	       	       menu.add(0, MENU_CUBE, 0, R.string.menu_cube)	                .setIcon(R.drawable.ic_menu_gallery)	                .setAlphabeticShortcut('C');	       menu.add(0, MENU_RECTANGLE, 0, R.string.menu_rectangle)	       			.setIcon(R.drawable.ic_menu_gallery)	       			.setAlphabeticShortcut('C');	       	       return true;	   }	   	   @Override	   public boolean onOptionsItemSelected(MenuItem item) {	       switch (item.getItemId()) {	           case MENU_CUBE:	               startCube();	               return true;	           case MENU_RECTANGLE:	        	   startRectangle();	               return true;	       }	       return super.onOptionsItemSelected(item);      }	   	   private View.OnTouchListener mcubeTouchListener = new View.OnTouchListener(){		   Point start, last;  		@Override		public boolean onTouch(View arg0, MotionEvent arg1) {			// TODO Auto-generated method stub			final int action = arg1.getAction();                  		final float x = arg1.getX();     		final float y = arg1.getY();     		switch (action) {    		case MotionEvent.ACTION_DOWN:    		 Log.e("a222302" ,"OnTouchListener ACTION_DOWN");    		 start = new Point((int)x, (int)y); 			 last = start;    		 cube_view.getThread().setRunning(false);    		 break;    		case MotionEvent.ACTION_MOVE:    			float angle0 = Math.abs(Math.abs((last.x - start.x) / 2f % 90) - 45);     			float angle1 = Math.abs(Math.abs((x - start.x) / 2f % 90) - 45);    			     			 //cube_view.scrollBy(20, 0);    			 last = new Point((int)x, (int)y);    			 break;    		case MotionEvent.ACTION_UP:     			 Log.e("a222302" ,"OnTouchListener ACTION_UP");    			 cube_view.getThread().setRunning(true);    			break;			}			return false;		}	   };}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -