Android中SurfaceView用法示例
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用法示例相关推荐
- android surface编程,Android中SurfaceView用法简单实例
本文实例讲述了Android中SurfaceView用法.分享给大家供大家参考,具体如下: 这里贴上一个小程序代码,主要运用SurfaceView来实现在屏幕上画一个圆,你可以通过按方向键和触摸屏幕来 ...
- Android中list常用方法,Android中ListActivity用法实例分析
本文实例分析了Android中ListActivity用法.分享给大家供大家参考,具体如下: 程序如下: import android.app.ListActivity; import android ...
- android中view用法,Android中ImageView用法实例分析
本文实例分析了Android中ImageView用法.分享给大家供大家参考,具体如下: 猜牌游戏大家可能以前都玩过,这里我们用这个小游戏来说明ImageView的用法. 首先,在res/drawabl ...
- android notification 的总结分析,Android中Notification用法实例总结
本文实例总结了 Android中Notification用法.分享给大家供大家参考,具体如下: 我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一个短信的小图 ...
- android listview 分析,Android中ListView用法实例分析
本文实例分析了Android中ListView用法.分享给大家供大家参考,具体如下: 通过在Layout中添加ListView Widget可以达到在页面布局具有列表效果的交互页面.在这里通过举例来说 ...
- android 动态contextmenu,Android中ContextMenu用法实例
本文实例讲述了Android中ContextMenu用法.分享给大家供大家参考.具体如下: main.xml文件如下: Android:orientation="vertical" ...
- Android中SurfaceView的使用详解
通过之前介绍的如何自定义View, 我们知道使用它可以做一些简单的动画效果.它通过不断循环的执行View.onDraw方法,每次执行都对内部显示的图形做一些调整,我们假设 onDraw方法每秒执行20 ...
- 漫说Android 中SurfaceView蕴含的美
相信大家对SurfaceView并不陌生,也相信大家一定有用它来做过视频播放等功能. 但我今天要跟大伙分享的并不是如何利用SurfaceView来做视频播放,而是想与大伙一起来谈谈SurfaceVie ...
- Android中SurfaceView使用详解
1.什么是SurfaceView? Surface意为表层.表面,顾名思义SurfaceView就是指一个在表层的View对象.为什么说是在表层呢,这是因为它有点特殊跟其他View不一样,其他View ...
最新文章
- cpu性能排名学习笔记
- 【Luogu】P3950部落冲突(树链剖分)
- 2018中国国际大数据大会专属报名通道(免费)开通啦!
- 华为鸿蒙系统学习笔记3-方舟编译器介绍
- 卷积神经网络(CNN)之MNIST手写数字数据集的实现
- 蔡奇视察奇安信:对成功登陆科创板表示祝贺
- unity如何得到所有子对象_Unity3D研究院之自动计算所有子对象包围盒(六)
- C++11中内联函数(inline)
- 协同办公OA业务系统数据集成(3)-基于OA(e-cology Jersey)定义Rest Api前端数据接口封装
- 联想平板刷android,联想平板电脑刷机全教程【图文】
- Windows文件传输小工具,网络传输文件,内网传输
- 20155314 2016-2017-2 《Java程序设计》第2周学习总结
- vue中加载maptalks图标(markers)点击事件InfoWindow添加按钮点击事件
- 无法启动此程序,因为计算机丢失api-ms-win-crt-process-l1-1-0.dll
- CCF 难题汇总(2013-2019 持续更新)
- 锎的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- IIS 支持 flv文件播放 (浏览器中可打开一flv文件)
- XML DTD Schema 学习-Schema 介绍
- mysql查询当年年份
- PETS渗透测试标准
热门文章
- mysql数据库存储多语言_数据库---数据控制语言(DCL)
- 新疆计算机证相关信息技术,2019新疆中小学教师计算机考试资料:信息技术课程基本理念...
- angular post php 404,AngularJS POST失败:飞行前响应具有无效的HTTP状态代码404
- 深入理解继承知识(下)
- java加载jdbc驱动,加载JDBC驱动
- 新建的ORACLE实例要开启监听,创建ORACLE实例与设置监听器过程
- vfp 调用接口取数据_2分钟教你调用全国天气预报数据接口
- python可以封装成独立程序吗_windows环境下把Python代码打包成独立执行的exe
- 安全随笔1:谨慎一次MD5值的可被穷举性
- 加密芯片在水电气表行业内的应用