



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
17.如何使用SurfaceView计时绘点或线大家常撰写View的子类别,然后在其onDraw()函数里绘出各式各样的图形,例如画出点或是直线。不过,基本上onDraw()函数是在Canvas画完所有线条等图形后,才一块儿将Canvas显示出来。然而,当我们想再画出一些线条之后,停个几秒钟之后,才继续绘出后续的图形,这种有停顿的计时性绘图,又该如何呢?例如,先绘出一条绿色线段:停顿5秒钟之后,才画出一条黄色线段:这时,使用SurfaceView会是一个好方法。如下之范例程序代码:/*ac01.java*/packagecom.misoo.ppvv;importandroid.app.Activity;importandroid.os.Bundle;importandroid.widget.LinearLayout;publicclassac01extendsActivityOverrideprotectedvoidonCreate(Bundleicicle)super.onCreate(icicle);MySurfaceViewmv=null;trymv=newMySurfaceView(this);catch(InterruptedExceptione)e.printStackTrace();/-LinearLayoutlayout=newLinearLayout(this);layout.setOrientation(LinearLayout.VERTICAL);LinearLayout.LayoutParamsparam=newLinearLayout.LayoutParams(200,150);param.topMargin=5;layout.addView(mv,param);/-setContentView(layout);/*MySurfaceView.java*/packagecom.misoo.ppvv;importandroid.content.Context;importandroid.graphics.Color;importandroid.view.SurfaceHolder;importandroid.view.SurfaceView;classMySurfaceViewextendsSurfaceViewimplementsSurfaceHolder.CallbackSurfaceHoldermHolder;privateDrawThreadmThread;privatedwListdwl;MySurfaceView(Contextcontext)throwsInterruptedExceptionsuper(context);getHolder().addCallback(this);dwl=newdwList();dwl.begin_record();dwl.record(30,30,0,0);dwl.record(100,100,1,Color.GREEN);Thread.sleep(50);dwl.record(100,30,1,Color.YELLOW);Thread.sleep(60);dwl.record(30,30,1,Color.BLUE);Thread.sleep(40);dwl.record(30,100,1,Color.RED);publicvoidsurfaceCreated(SurfaceHolderholder)mHolder=holder;mThread=newDrawThread();mThread.start();publicvoidsurfaceDestroyed(SurfaceHolderholder)mThread=null;publicvoidsurfaceChanged(SurfaceHolderholder,intformat,intw,inth)/-classDrawThreadextendsThreadDrawThread()super();Overridepublicvoidrun()dwl.draw(mHolder);/*dwList.java*/packagecom.misoo.ppvv;importjava.util.ArrayList;importjava.util.Iterator;importandroid.graphics.Canvas;importandroid.graphics.Paint;importandroid.view.SurfaceHolder;publicclassdwListprivatePaintpaint=null;privatelongdraw_time;privateArrayListpoList;publicvoidbegin_record()dwPoint.initial_time=System.currentTimeMillis();poList.clear();publicvoidrecord(intx,inty,intty,intcolor)dwPointpo=newdwPoint(x,y,ty,color);poList.add(po);publicdwList()paint=newPaint();poList=newArrayList();publicvoiddraw(SurfaceHolderholder)dwPointpo;longcurr_time;longbase_time=0;intnnn=0;Iteratorit=poList.iterator();while(it.hasNext()po=it.next();draw_time=po.m_timeSpan*100;if(nnn=0)base_time=System.currentTimeMillis();nnn+;/-waiting-docurr_time=System.currentTimeMillis()-base_time;while(curr_timedraw_time);/-paint(holder,nnn);publicvoidpaint(SurfaceHolderholder,intk)Canvascanvas=holder.lockCanvas();dwPointpo;intlastX=0;intlastY=0;Iteratorit=poList.iterator();for(inti=0;ik;i+)po=it.next();if(po.m_type=0)lastX=po.m_x;lastY=po.m_y;elsepaint.setColor(po.m_color);paint.setStrokeWidth(3);canvas.drawLine(lastX,lastY,po.m_x,po.m_y,paint);lastX=po.m_x;lastY=po.m_y;holder.unlockCanvasAndPost(canvas);/*dwPoint.java*/packagecom.misoo.ppvv;publicclassdwPointpublicstaticlonginitial_time;publicintm_x,m_y,m_type;publiclongm_timeSpan;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年环型荧光灯管合作协议书
- 友善主题的演讲稿集合15篇
- 2025南平市人民医院煎药员招聘(编外聘用)考前自测高频考点模拟试题及参考答案详解
- 2025河北承德市消防救援支队招聘政府专职消防队员考前自测高频考点模拟试题附答案详解(完整版)
- 2025年福建省莆田华侨职业中专学校校聘教师招聘1人考前自测高频考点模拟试题附答案详解(完整版)
- 2025内蒙古呼和浩特市新城区东街西街街道社区卫生服务中心招聘3人模拟试卷及答案详解(必刷)
- 2025年山西云时代技术有限公司校园招聘考前自测高频考点模拟试题及参考答案详解1套
- 2025河北沧州市任丘园区产业发展集团有限公司招聘10人考前自测高频考点模拟试题附答案详解(完整版)
- 2025黑龙江佳木斯市建三江湿地机场消防应急救援大队招聘消防车司机1人模拟试卷附答案详解(模拟题)
- 2025年白山市教育系统“进校园”招聘高校毕业生(52人)模拟试卷及答案详解(考点梳理)
- 妇婴医院护理技术操作新生儿气管内吸痰操作流程图与考核评分标准
- (完整版)韦氏儿童智力测试试题
- 机械制图-点线面教学课件
- 练习使用显微镜 全国公开课一等奖
- 2023年高考地理(上海卷)-含答案
- 比重式精选机的使用与维护
- GB/T 39554.1-2020全国一体化政务服务平台政务服务事项基本目录及实施清单第1部分:编码要求
- GB/T 2942-2009硫化橡胶与纤维帘线静态粘合强度的测定H抽出法
- 电梯设计系统
- 细胞培养技术培训课件
- DB3301T 0286-2019 城市绿地养护管理质量标准
评论
0/150
提交评论