全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安卓开发必备,达内分享surfaceView典型代码作者:未知 更新时间:2012-2-23 10:05:30 来源:安卓培训 网址:安卓开发必备,达内分享surfaceView典型代码 杭州达内开设android培训,PHP培训,现为想要自学android开发的同学,分享android必备武器,标准su*ceView典型代*。 Su*ceView非常强大,基本上现在开发游戏,都要靠它,而且要写触摸屏的话,还能做到实时刷新坐标位置,View则只能做到反馈式刷新。package sam.sucl;import android.app.Activity;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.os.Bundle;import android.view.Display;import android.view.MotionEvent;import android.view.Su*ceHolder;import android.view.Su*ceView;import android.view.Su*ceHolder.Callback;public class StringHW extends Activity StringView stringView=null; /自己写的显示类对象 public void onCreat(Bundle savedInstanceState) super.onCreate(savedInstanceState); Display display=getWindowManager().getDefaultDisplay(); stringView=new StringView(this,display.getWidth(),display.getHeight(); /可以顺手在display上面写入是否有title栏与横竖屏,而上面则是把需要用到的屏幕信息送入到自定义屏幕刷新的类中去 setContentView(stringView); /以下这一个方法就是对于stringView进行触摸控制的 public boolean onTouchEvent(MotionEvent event) int x=(int) event.getX(); int y=(int) event.getY(); switch (event.getAction() case MotionEvent.ACTION_DOWN: stringView.UpdateTouchEvent(x, y); /这一段代*就是在触碰效果之后,实现什么样的内容用的 break; case MotionEvent.ACTION_MOVE: break; case MotionEvent.ACTION_UP: break; default: break; return false; public class StringView extends Su*ceView implements Callback,Runnable private Context mContext=null; private Thread mThread=null; private Canvas canvas=null; private Paint paint=null; private Su*ceHolder su*ceHolder=null; private boolean isRunning=false; private int mScreenWight=0; private int mScreenHeight=0; public StringView(Context context, int width, int height) super(context); mContext=context; canvas=new Canvas(); paint=new Paint(); mScreenHeight=height; mScreenWight=width; su*ceHolder=getHolder(); su*ceHolder.addCallback(this); setFocusable(true); /设定触碰允许 init(); /总的来说,以上就是类的初始化部分 private void init() /这里写入绝大部分需要初始化的内容 private void doDraw() /这里写入线程刷新的时候屏幕显示的内容 /可以用state来进行状态机控制,使得刷新机制趋向于各种可能 public void UpdateTouchEvent(int x, int y) /触碰之后,想要实现什么样的功能,就在这里写了,这里是一个很神髓的方法 /可以再上面的参数中追加一个boolean参数,判断是否一直处于触碰状态, /屏幕刷新的线程,差不多就是这样了 public void run() while (isRunning) synchronized (su*ceHolder) canvas=su*ceHolder.lockCanvas(); doDraw(); su*ceHolder.unlockCanvasAndPost(canvas); try Thread.sleep(100); catch (InterruptedException e) e.printStackTrace(); /最下面这三个玩意是常规的,直接可以复制了用 public void su*ceChanged(Su*ceHolder holder,int arg1,int arg2,int arg3) public void su*ceCreated(Su*ceHolder su*ceHolder) isRunning=true; mThread=new Thread(this); mThread.start(); public
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 苗木培育工班组评比模拟考核试卷含答案
- 未来五年全媒体出版企业县域市场拓展与下沉战略分析研究报告
- 2025智慧停车场管理系统互联网技术应用情况调研
- 2025智慧交通行业市场分析及未来发展趋势与投资潜力研究报告
- 2025智利葡萄酒产业市场现状调研分析及投资前景规划咨询报告书
- 2025新西兰农产品(奇异果)行业发展现实供需研究及长期投资规划讨论文献
- 2025新能源车辆产业链投资发展分析及产能扩张策略研究报告
- 2025年初中生物七年级下册《植株的生长》逐字稿
- 一元二次不等式其他常见不等式解法十大题型教案
- 六年级数学《扇形统计图》详解市公开课省赛课教案(2025-2026学年)
- 外科内镜手术技术应用及优势分析
- 第3课+中古时期的欧洲+说课课件-2024-2025学年高一下学期统编版(2019)必修中外历史纲要下
- 热电外委工程管理制度
- GB/T 17934.6-2025印刷技术网目调分色版、样张和生产印刷品的加工过程控制第6部分:柔性版印刷
- 好慷家政公司管理制度
- 火灾风险评估相关试题及答案
- 广州水务笔试题目及答案
- 2025南宁市武鸣区辅警考试试卷真题
- GB 14930.2-2025食品安全国家标准消毒剂
- 2025北京外国语大学辅导员考试题库
- 湖北省技能高考(护理)专业知识考试题(附答案)
评论
0/150
提交评论