zoukankan      html  css  js  c++  java
  • 绘制surfaceView 基础类

    public class SurfaceViewTempalte extends SurfaceView implements Callback, Runnable  {
    	
    	private SurfaceHolder mHolder; 
    	private Canvas mCanvas;
    	
    	// 线程
    	Thread t;
    	
    	// 线程开关
    	private boolean isRunning;
    	
    	
    	public SurfaceViewTempalte(Context context) {
    		this(context, null);
    	}
    	public SurfaceViewTempalte(Context context, AttributeSet attrs) {
    		super(context, attrs, 0);
    		
    		mHolder = getHolder();
    		mHolder.addCallback(this);
    		
    		//设置可获得焦点
    		setFocusable(true);
    		setFocusableInTouchMode(true);
    		
    		//设置常亮
    		setKeepScreenOn(true);
    		
    	}
    	@Override
    	public void surfaceCreated(SurfaceHolder holder) {
    		isRunning = true;
    		t = new Thread(this);
    		t.start();
    	}
    	@Override
    	public void surfaceChanged(SurfaceHolder holder, int format, int width,
    			int height) {
    		
    	}
    	@Override
    	public void surfaceDestroyed(SurfaceHolder holder) {
    		isRunning = false;
    	}
    	@Override
    	public void run() {
    		//不断进行绘制
    		while(isRunning) {
    			draw();
    		}
    	}
    
    	private void draw() {
    		//try防止back无释放
    		try {
    			mCanvas = mHolder.lockCanvas();
    			if(mCanvas != null) {
    				//绘制
    				
    			}
    		} catch (Exception e) {
    		}
    		finally {
    			//释放mCanvas
    			if(mCanvas != null) {
    				mHolder.unlockCanvasAndPost(mCanvas);
    			}
    		}
    	}
    
    }
    

      

  • 相关阅读:
    Jmeter中的变量(三)
    Jmeter组件和属性(二)
    Jmeter配置元件执行顺序
    Fiddler Web Session 列表(1)
    selenium webdriver操作各浏览器
    java1.8环境配置+win10系统
    python函数库及函数标准库
    MySql 数据库基础命令
    Linux 常用命令
    normalize.css
  • 原文地址:https://www.cnblogs.com/zyandroid/p/5014127.html
Copyright © 2011-2022 走看看