SurfaceView的经典写法
package com.example.test;import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;/*** 继承SurfaceView* 实现SurfaceHolder.Callback。给SurfaceHolder用的* 创建SurfaceHolder。并addCallback,SurfaceView的一切都有SurfaceHolder控制*/
public class MySurfaceView extends SurfaceView implements Callback, Runnable {//SurfaceView基本private SurfaceHolder sfh;//操控SurfaceViewprivate Paint p;private Canvas c;//线程private Thread t;private boolean flag;//数据private int screenW, screenH;private int xx = 100, yy = 100;public MySurfaceView(Context context) {super(context);sfh = this.getHolder();sfh.addCallback(this);p = new Paint();p.setColor(Color.RED);}@Overridepublic boolean onTouchEvent(MotionEvent event) {xx = (int) event.getX();yy = (int) event.getY();return true;}public void myDraw() {try {//当SurfaceView不可编辑或尚未创建。会返回nullc = sfh.lockCanvas();if(c != null) {c.drawColor(Color.GREEN);//刷屏c.drawText("me", xx, yy, p);//画}} catch(Exception e) {} finally {if(c != null) {sfh.unlockCanvasAndPost(c);}}}//游戏逻辑public void logic() {}@Overridepublic void surfaceCreated(SurfaceHolder holder) {screenW = this.getWidth();screenH = this.getHeight();//线程的初始化和启动都写在create里面flag = true;t = new Thread(this);t.start();}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {flag = false;}@Overridepublic void run() {while (flag) {//刷屏时间保持一致//通常会在10~20帧左右//每秒20帧:1000ms/20=50ms每帧long start = System.currentTimeMillis();myDraw();logic();long end = System.currentTimeMillis();try {if(end - start < 50) {Thread.sleep(50 - (end-start));}} catch (InterruptedException e) {e.printStackTrace();}}}
}

SurfaceView的生命周期:

posted on 2017-05-02 12:36 mthoutai 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/mthoutai/p/6795562.html

SurfaceView的经典写法相关推荐

  1. leetcode79. 单词搜索 网格地图搜索+回溯经典写法啦

    给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格.同一个单元格内的字 ...

  2. mysql的sql经典写法收录

    1.表关联更新: 1 2 3 select a.`user`,a.`host`,b.db from mysql.`user` as a   left join mysql.db as b on (a. ...

  3. 操作argc, argv的经典写法

    [问题] 我在看boost源代码的时候看到如下的代码, template<class charT>basic_command_line_parser<charT>::basic ...

  4. js插件的经典写法与总结

    之前写了一篇关于js插件的方法,可以传入参数,当时不能够拓展方法,而且模式也不是很好,虽然能够满足一定的业务要求.下面是对js插件的完善,可以实现参数传入,方法拓展,链式操作,设计模式更加清晰. &l ...

  5. 园内ORM讨论的经典文章及评论[转]

    转自:http://www.cnblogs.com/robinzhang/archive/2007/01/13/619738.html 考虑整合一个ORM框架,顺手把找到的资料索引一下,供大家参考. ...

  6. 电商分类模块写法_模块化写作——网络小说创作之典藏秘籍

    1.模块化,是一种将复杂事物分解为多个模块,从而获得效率与质量的操作手段.这个概念常出现在与科技相关的领域里.其实,模块化在文学领域里也很重要. 例如,小说的情节被分解为四个模块:开端.发展.高潮.结 ...

  7. js中foreach有三种写法,你知道吗

    JavaScript的foreach 初始化 写法 1.经典写法 2.js的foreach 3.es6的foreach 初始化 先创建一个h5文件,并定义一个数组 <!DOCTYPE html& ...

  8. 【转载文章】批处理经典入门教程!(从不懂到高手)____附加我的学习笔记

    原文地址https://www.jb51.net/article/7131_all.htm 这篇文章好像是51jb上推荐的比较好入门的一篇了,看了全文确实很有收获 文章推测写与2000-2004年之间 ...

  9. Android SurfaceView实战 带你玩转flabby bird (上)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 转载请标 ...

最新文章

  1. Spring单实例、多线程安全、事务解析
  2. 「hadoop」hadoop启动需要相关的命令(仅供本人使用)
  3. 第四天2017/03/31(下午2:结构体、数组)
  4. [羊城杯 2020]GMC
  5. C段 192.168.1.15/28与192.168.1.16/28的区别
  6. 【ArcGIS风暴】基于ArcGIS空间分析功能研究渭河流域镇驻地空间分布格局
  7. shell基础——变量定义
  8. 关于String,StringBuffer和StringBuilder之间的区别和联系
  9. 【原】 图片预览 Image preview
  10. 51Nod - 1086 (多重背包+2进制优化)
  11. “SCSA-S学习导图+”系列:Windows下的WEB系统环境搭建
  12. 硕思闪客精灵怎么导出flash(gif)动画,flash游戏源文件疑难问题解答(注册码)
  13. Flutter之以阿里云图标库为例,使用多色图标
  14. 3种夸克有多少组合?
  15. python readcsv读取gbk编码文件_python读写csv文件
  16. 多项式, FTT, NTT小结
  17. graylog+kafka+zookeeper(单机测试及源码),kafka+zookeeper组件部署(二)
  18. docker之卷10
  19. IaaS PaaS SaaS云服务三种应用模式
  20. 如何在pycharm中安装PIL模块

热门文章

  1. 根据指定的commit查找对应的log
  2. 请问asp.net网页里能显示tiff格式的图片吗?
  3. 【零基础学Java】—Java运行机制(三)
  4. 【Vue2.0】—Vue监视数据的原理(五)
  5. Codeforces Round #628 (Div. 2)C - Ehab and Path-etic MEXs
  6. 买手机,是不是运行内存大,手机用久了也不卡?
  7. 人到了中年在职场中就应该保持内敛的心态
  8. 二手车没有车险能过户吗?
  9. 李开复曾说:“买车是一生最坏的投资”,真的是这样吗?对此你怎么看?
  10. 鲍鱼的“几头”是什么意思?什么样的好吃?