SurfaceView--扩展SurfaceView的基础模版代码
来源:互联网 发布:mac win linux 编辑:程序博客网 时间:2024/04/29 19:00
/** * <p> * 扩展SurfaceView的基础模版代码 * SurfaceViewTemplate */public class SurfaceViewTemplate extends SurfaceView implements SurfaceHolder.Callback, Runnable { protected SurfaceHolder mHolder; protected Canvas mCanvas; protected volatile boolean mIsDrawing; // 用于控制子线程 protected Paint mPaint; public SurfaceViewTemplate(Context context) { this(context, null); } public SurfaceViewTemplate(Context context, AttributeSet attrs) { this(context, attrs, 0); } public SurfaceViewTemplate(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } protected void init() { mHolder = getHolder(); mHolder.addCallback(this); setFocusable(true); setFocusableInTouchMode(true); setKeepScreenOn(true); } @Override public void surfaceCreated(SurfaceHolder holder) { mIsDrawing = true; new Thread(this).start(); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceDestroyed(SurfaceHolder holder) { mIsDrawing = false; } public void stopDraw() { mIsDrawing = false; } @Override public void run() { while (mIsDrawing) { draw(); } } protected void draw() { try { mCanvas = mHolder.lockCanvas(); // TODO draw anything drawAnyThing(mCanvas); } catch (Exception e) { e.printStackTrace(); } finally { if (mCanvas != null) { mHolder.unlockCanvasAndPost(mCanvas); // 解锁并且提交绘制结果 } } } /** * 子类重写该方法 绘制自定义内容 * * @param mCanvas */ protected void drawAnyThing(Canvas mCanvas) { }}
阅读全文
0 0
- SurfaceView--扩展SurfaceView的基础模版代码
- SurfaceView模版
- SurfaceView的使用基础
- SurfaceView基础
- SurfaceView简单模版
- Android的SurfaceView测试代码
- surfaceview
- SurfaceView
- surfaceview
- surfaceview
- SurfaceView
- SurfaceView
- SurfaceView
- SurfaceView
- SurfaceView
- SurfaceView
- SurfaceView
- surfaceview
- 机器学习之Octave:plot函数绘图
- 他山之石 | 渗透测试中的各种子域名枚举技术介绍
- 数据库高并发解决方法总结
- linux Bash Shell IO重定向与管道
- 青否云
- SurfaceView--扩展SurfaceView的基础模版代码
- jupyter notebook设置远程访问权限
- 553 mail from must equal authorized user解决方法
- Android之DecorView
- 在整个数据库搜索某个字符串在哪个表的哪个字段中
- 蓝桥杯 算法训练 矩阵乘法
- Android studio aidl找不到生成的 class文件
- Android开发&可实现信息滚动的控件——RollTextView
- 开启redis-server报错 # Creating Server TCP listening socket *:6379: bind: Address already in use--解决方法