绘制surfaceView 基础类
2015-12-02 20:38
309 查看
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); } } } }
相关文章推荐
- Python Simple Unicode Instance
- 【leetcode】3Sum
- 搭建Struts2开发环境
- OC字典(NSDictionary)和集合(NSSet)的总结
- (十八)赋值“=”
- iOS 简单使用sqlite3数据库
- Adreno SDK 详细介绍(一)
- 使用android内置的JSon解析类来解析JSon数据
- 从大数据菜鸟走上大师的历程 Scala 第十讲 apply
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
- C++中联合体(union)的使用
- codevs-1246 丑数
- Optional变量的解析
- (十七)关于声明
- 多继承有什么坏处,为什么java搞单继承,接口为什么可以摈弃这些坏处
- 线段树
- mysql分区表管理
- OpenGL step by step - tutorial_4 "hello shader"
- Struts2 DomainModel、ModelDriven接收参数
- (十六)写代码时的风格