SurfaceView在游戏开发中有着举足轻重的地位,它对于画面的控制有着更大的自由度(不像View要用handler来更新,关于View的),但这方面的参考资料并不是太多,能找到的例子都有点喧宾夺主的感觉,不能把使用的流程清晰展示出来,下面是个简单的示例,力求把流程清楚展示,其他的可简则简。

程序效果——1:用线程画一个蓝色的长方形。

JAVA代码

package com.hyzhou.surfaceviewdemo;import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(new MyView(this));}private  class MyView extends SurfaceView implements SurfaceHolder.Callback{/*** @param context*/SurfaceHolder holder;public MyView(Context context) {super(context);// TODO Auto-generated constructor stubholder=this.getHolder();holder.addCallback(this);}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {// TODO Auto-generated method stub
            }@Overridepublic void surfaceCreated(SurfaceHolder holder) {// TODO Auto-generated method stubnew Thread(new MyThread()).start();}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {// TODO Auto-generated method stub
            }class MyThread implements Runnable{/* (non-Javadoc)* @see java.lang.Runnable#run()*/@Overridepublic void run() {// TODO Auto-generated method stubCanvas canvas = holder.lockCanvas(null);//获取画布  Paint mPaint = new Paint();  mPaint.setColor(Color.BLUE);  canvas.drawRect(new RectF(40,60,80,80), mPaint); //前2个参数代表右上角坐标,后2个参数代表右下角坐标 holder.unlockCanvasAndPost(canvas);//解锁画布,提交画好的图像
}}}}

View Code

Android中SurfaceView用法示例相关推荐

  1. android surface编程,Android中SurfaceView用法简单实例

    本文实例讲述了Android中SurfaceView用法.分享给大家供大家参考,具体如下: 这里贴上一个小程序代码,主要运用SurfaceView来实现在屏幕上画一个圆,你可以通过按方向键和触摸屏幕来 ...

  2. Android中list常用方法,Android中ListActivity用法实例分析

    本文实例分析了Android中ListActivity用法.分享给大家供大家参考,具体如下: 程序如下: import android.app.ListActivity; import android ...

  3. android中view用法,Android中ImageView用法实例分析

    本文实例分析了Android中ImageView用法.分享给大家供大家参考,具体如下: 猜牌游戏大家可能以前都玩过,这里我们用这个小游戏来说明ImageView的用法. 首先,在res/drawabl ...

  4. android notification 的总结分析,Android中Notification用法实例总结

    本文实例总结了 Android中Notification用法.分享给大家供大家参考,具体如下: 我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一个短信的小图 ...

  5. android listview 分析,Android中ListView用法实例分析

    本文实例分析了Android中ListView用法.分享给大家供大家参考,具体如下: 通过在Layout中添加ListView Widget可以达到在页面布局具有列表效果的交互页面.在这里通过举例来说 ...

  6. android 动态contextmenu,Android中ContextMenu用法实例

    本文实例讲述了Android中ContextMenu用法.分享给大家供大家参考.具体如下: main.xml文件如下: Android:orientation="vertical" ...

  7. Android中SurfaceView的使用详解

    通过之前介绍的如何自定义View, 我们知道使用它可以做一些简单的动画效果.它通过不断循环的执行View.onDraw方法,每次执行都对内部显示的图形做一些调整,我们假设 onDraw方法每秒执行20 ...

  8. 漫说Android 中SurfaceView蕴含的美

    相信大家对SurfaceView并不陌生,也相信大家一定有用它来做过视频播放等功能. 但我今天要跟大伙分享的并不是如何利用SurfaceView来做视频播放,而是想与大伙一起来谈谈SurfaceVie ...

  9. Android中SurfaceView使用详解

    1.什么是SurfaceView? Surface意为表层.表面,顾名思义SurfaceView就是指一个在表层的View对象.为什么说是在表层呢,这是因为它有点特殊跟其他View不一样,其他View ...

最新文章

  1. cpu性能排名学习笔记
  2. 【Luogu】P3950部落冲突(树链剖分)
  3. 2018中国国际大数据大会专属报名通道(免费)开通啦!
  4. 华为鸿蒙系统学习笔记3-方舟编译器介绍
  5. 卷积神经网络(CNN)之MNIST手写数字数据集的实现
  6. 蔡奇视察奇安信:对成功登陆科创板表示祝贺
  7. unity如何得到所有子对象_Unity3D研究院之自动计算所有子对象包围盒(六)
  8. C++11中内联函数(inline)
  9. 协同办公OA业务系统数据集成(3)-基于OA(e-cology Jersey)定义Rest Api前端数据接口封装
  10. 联想平板刷android,联想平板电脑刷机全教程【图文】
  11. Windows文件传输小工具,网络传输文件,内网传输
  12. 20155314 2016-2017-2 《Java程序设计》第2周学习总结
  13. vue中加载maptalks图标(markers)点击事件InfoWindow添加按钮点击事件
  14. 无法启动此程序,因为计算机丢失api-ms-win-crt-process-l1-1-0.dll
  15. CCF 难题汇总(2013-2019 持续更新)
  16. 锎的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  17. IIS 支持 flv文件播放 (浏览器中可打开一flv文件)
  18. XML DTD Schema 学习-Schema 介绍
  19. mysql查询当年年份
  20. PETS渗透测试标准

热门文章

  1. mysql数据库存储多语言_数据库---数据控制语言(DCL)
  2. 新疆计算机证相关信息技术,2019新疆中小学教师计算机考试资料:信息技术课程基本理念...
  3. angular post php 404,AngularJS POST失败:飞行前响应具有无效的HTTP状态代码404
  4. 深入理解继承知识(下)
  5. java加载jdbc驱动,加载JDBC驱动
  6. 新建的ORACLE实例要开启监听,创建ORACLE实例与设置监听器过程
  7. vfp 调用接口取数据_2分钟教你调用全国天气预报数据接口
  8. python可以封装成独立程序吗_windows环境下把Python代码打包成独立执行的exe
  9. 安全随笔1:谨慎一次MD5值的可被穷举性
  10. 加密芯片在水电气表行业内的应用