SurfaceView实例


1、看着别人的实例,写了一个SurfaceView应用的实例,基本是照着别人代码敲了一遍,运行后如下图

2、代码如下,没有注释

package com.demo;

import java.util.Vector;

import android.app.Activity;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Paint.Style;import android.os.Bundle;import android.view.MotionEvent;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.ViewGroup.LayoutParams;

public class SurfaceViewDemoActivity extends Activity {

    SurfaceHolder sh = null;    Vector<Float> vx = new Vector<Float>();    Vector<Float> vy = new Vector<Float>();

    @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

        SurView surView = new SurView(this);        setContentView(surView);

    }

class SurView extends SurfaceView implements SurfaceHolder.Callback {

public SurView(Context context) {super(context);

            sh = getHolder();            sh.addCallback(this);        }

        @Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {// TODO Auto-generated method stub

        }

        @Overridepublic void surfaceCreated(SurfaceHolder holder) {new Thread(new SurLoop()).start();

        }

        @Overridepublic void surfaceDestroyed(SurfaceHolder holder) {// TODO Auto-generated method stub

        }

public void doDraw(Canvas canvas) {super.onDraw(canvas);            canvas.drawColor(Color.GRAY);            Paint paint = new Paint();            paint.setAntiAlias(true);            paint.setColor(Color.BLUE);            paint.setStyle(Style.STROKE);for (int i = 0; i < vx.size(); i++) {                canvas.drawCircle(vx.elementAt(i), vy.elementAt(i), 10, paint);            }        }

        @Overridepublic boolean onTouchEvent(MotionEvent event) {

if (event.getAction() == MotionEvent.ACTION_DOWN) {                vx.add(event.getX());                vy.add(event.getY());            }return true;        }

class SurLoop implements Runnable {

            @Overridepublic void run() {while (true) {try {                        Canvas canvas = sh.lockCanvas();                        doDraw(canvas);                        sh.unlockCanvasAndPost(canvas);                        Thread.sleep(20);                    } catch (Exception e) {                    }                }            }        }

    }

}

转载于:https://www.cnblogs.com/stylering/archive/2012/02/10/2345681.html

SurfaceView实例相关推荐

  1. android surface编程,Android编程之SurfaceView实例详解

    本文实例讲述了Android编程之SurfaceView用法.分享给大家供大家参考,具体如下: 关于surfaceView相关知识: View和SurfaceView主要区别: 1. View只能在U ...

  2. android 人物走动_Android游戏开发学习(2)--SurfaceView实例控制角色移动

    先看效果 我用到的图片- 在看代码 package dk.game; import android.app.Activity; import android.os.Bundle; import and ...

  3. android surfaceview 背景颜色,android – 设置Surface View的背景颜色

    有一个解决方法来做到这一点. >为surfaceview添加父视图组,将背景颜色设置为此视图组而不是surfaceview; android:layout_width="match_p ...

  4. Android绘图机制与处理技巧-更新中

    概述 这里我们主要来探讨下 Android屏幕的相关只是 Android绘图技巧 Android图像处理技巧 SurfaceView的使用 绘图技巧中,医生讲的比较粗略,更多的细节参考了 Keegan ...

  5. android 后台自动拍照,Android实现后台服务拍照功能

    一.背景介绍 最近在项目中遇到一个需求,实现一个后台拍照的功能.一开始在网上寻找解决方案,也尝试了很多种实现方式,都没有满意的方案.不过确定了难点:即拍照要先预览,然后再调用拍照方法.问题也随之而来, ...

  6. pAdTy_1 构建图形和动画应用程序

    2015.11.12-11.18 个人英文阅读练习笔记.原文地址:http://developer.android.com/training/building-graphics.html. 2015. ...

  7. Android MediaPlayer本地视频播放器

    该文章的目的是,让初学者能够快速掌握一个简单的本地视频播放器.该Demo中用到了SurfaceView.MediaPlayer. 实现效果图: <RelativeLayout xmlns:and ...

  8. 图形相关知识(显示)

    1. 图形 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bepS0Lhf-1630391870991)(https://source.android.com/devi ...

  9. 刘备学Android目录

    准备篇-刘备,从编草鞋到编代码...1 第1回     哦,何为Android?...1 1.1. Android基本知识...1 1.1.1. Android的历史...2 1.1.2. Andro ...

  10. 【转】自上而下解读Android显示流程

    同济大学 计算机系统结构硕士 107 人赞同了该文章 当我们点击"知乎"这个应用后,它是怎么在屏幕上显示出来的? 这个问题困扰我很久了,当我刚接触显示的时候,大约是十年前的事情了, ...

最新文章

  1. 加速AI应用落地,英特尔AI 2.0的进阶之道
  2. 利用TaskCompletionSource将EAP转换成TAP
  3. mybatis中的xml中拼接sql中参数与字符串的方法
  4. flume采集最简demo
  5. Educational Codeforces Round 88 (Rated for Div. 2) E(数学)
  6. 信佑无盘主服务器密码,(信佑无盘帮助手册.doc
  7. shishuo-CMS-master
  8. AI为癌细胞杀手“染色”,辅助医生选择治疗方案 | 附论文
  9. IDEA设置代码背景豆沙色
  10. 数据治理成功要素篇1:数据战略管理
  11. 使用思科交换机Packet——Tracer模拟器教程
  12. 目前开发人工日多少钱_行内人解读开发一个App需要多少钱?-今日头条
  13. HttpPrinter-网页打印控件
  14. 语音信号的短时平均过零率
  15. 实时音视频聊天中的延时问题一篇就够,低延时场景及优化
  16. SQL零基础入门学习(三)
  17. 2020 IEEE 冯诺依曼奖得主:Michael Jordan --机器学习领域泰斗级人物
  18. 数仓存在的意义价值及分层的好处
  19. HDU 6555 The Fool(打表整除分块)
  20. HTML期末作业课程设计期末大作业——体育排球5页面带注册HTML+CSS+JS(学生网页设计作业源码)...

热门文章

  1. Reflector 3在录制中如何添加自己的声音
  2. EasyRecovery,重新找寻丢失的文件
  3. 网络安全与管理精讲视频笔记10-Windows隧道模式IPSec配置实验演示
  4. [转]在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView
  5. 关于css中列表(ul ol)存在默认间距的问题
  6. Ruby+watir自动化测试中实现识别验证码图片
  7. vim插件command-t安装
  8. C++字符串格式化 sprintf详解
  9. 「leetcode」111.二叉树的最小深度(与求最大深度还有所不同的)
  10. UNIX环境高级编程之第6章:系统数据文件和信息