Android UI SurfaceView的使用-绘制组合图型,并使其移动
绘制容器类:
//图形绘制容器
public class Contanier {private List<Contanier> list;private float x=0,y=0;public Contanier(){list=new ArrayList<Contanier>();}public void draw(Canvas canvas){canvas.save();canvas.translate(getX(), getY());childrenDraw(canvas);for(Contanier c : list){c.draw(canvas);}canvas.restore();}public void childrenDraw(Canvas canvas){}public void addChildren(Contanier child){list.add(child);}public void removeChildren(Contanier child){list.remove(child);}public float getX() {return x;}public void setX(float x) {this.x = x;}public float getY() {return y;}public void setY(float y) {this.y = y;}}
绘制正方型类:
//绘制正方型
public class Rect extends Contanier {private Paint paint;public Rect(){paint=new Paint();paint.setColor(Color.RED);}@Overridepublic void childrenDraw(Canvas canvas) {super.childrenDraw(canvas);canvas.drawRect(0, 0, 100, 100, paint);this.setY(getY()+1);}
}
绘制圆:
//绘制圆
public class Circle extends Contanier {private Paint paint;public Circle(){paint=new Paint();paint.setColor(Color.BLUE);}@Overridepublic void childrenDraw(Canvas canvas) {super.childrenDraw(canvas);canvas.drawCircle(50, 50, 50, paint);}
}
绘制类:
public class GameView extends SurfaceView implements Callback{private Contanier contaier;private Rect rect;private Circle circle;public GameView(Context context) {super(context);contaier=new Contanier();rect=new Rect();circle=new Circle();rect.addChildren(circle);contaier.addChildren(rect);getHolder().addCallback(this);}private void draw(){Canvas canvas=getHolder().lockCanvas();canvas.drawColor(Color.WHITE);contaier.draw(canvas);getHolder().unlockCanvasAndPost(canvas);}private Timer timer=null;private TimerTask task=null;//开始后让其根据Y轴进行移动private void startTimer(){timer=new Timer();task=new TimerTask() {@Overridepublic void run() {draw();}};timer.schedule(task, 100,100);}private void stopTimer(){if(timer!=null){timer.cancel();timer=null;}}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {}@Overridepublic void surfaceCreated(SurfaceHolder holder) {startTimer();}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {stopTimer();}}
MainActivity:
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(new GameView(this));}
效果:
Android UI SurfaceView的使用-绘制组合图型,并使其移动相关推荐
- python绘制组合图_Python如何绘制组合图 Python绘制组合图代码示例
Python如何绘制组合图?本篇文章小编给大家分享一下Python绘制组合图代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 绘制组合图: 组合 ...
- android 雷达坐标系,Android Path之绘制雷达图的技巧
Android Path之绘制雷达图的技巧,绘制蜘蛛网络其实就是绘制指定边数的正多边形,这一步比较简单,比较难的可能就是每个顶点的算法,相关注释我都写了,还有一张来自互联网的图以助于思考,如下: 第一 ...
- Android UI + Function
第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...
- Android UI个性style
Android开源项目第一篇--个性化控件(View) ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar ...
- Origin绘图技巧——组合图
作为研究生,做实验是家常便饭,实验结束后利用纷繁冗杂的原始数据,进行美化处理,让自己的实验成果给人眼前一亮的感觉不是一件轻松的事情. Origin是一款进行数据分析和绘图的软件,具有十分强大的功能,能 ...
- R统计绘图-corrplot绘制热图及颜色、字体等细节修改1
有师妹想要更改热图的颜色和字体,想着之前相关性绘图等推文只是使用corrplot默认的颜色绘图,为了帮师妹解惑,今天就写一篇,怎么设置热图颜色和字体等细节到推文.其实看一遍R语言实战|入门3:图形初阶 ...
- android ui框架详解,多图详解 “Android UI”设计官方教程(二)
编者注:本文为Android的官方开发者博客发了一份幻灯片的翻译文档的第二部分,专门介绍了一些Android UI设计的小贴士,我们在介绍这个幻灯片的第一部分<多图详解 "Androi ...
- android ui秘笈,看图说话_Android_UI_设计秘笈.pdf
March 14 2011 看图说话看图说话 Android UI 设计秘笈设计秘笈 Part II Android 的官方开发者博客发了一份幻灯片 介绍了一些 Android UI 设计的小贴士 整 ...
- android教程 - android ui 介绍,多图详解 “Android UI”设计官方教程
我们曾经给大家一个<MeeGo移动终端设备开发UI设计基础教程>,同时很多朋友都在寻找Android UI开发的教程,我们从Android的官方开发者博客找了一份幻灯片,介绍了一些Andr ...
最新文章
- 阿里云MWC 2019发布7款重磅产品,助力全球企业迈向智能化
- LeetCode 多线程 1116. 打印零与奇偶数
- 经典的 Fork 炸弹解析
- SAP Cloud for Customer使用移动设备访问系统的硬件要求
- Django从理论到实战(part33)--表关系
- MFC BCGControlBar 库 使用方法
- ssl1500-最短路上的统计【Floyd】
- 单链表实例之学生系统
- 北大mooc课程平台
- 实体框架提供程序类型无法加载?
- postgresql 9.1 基于wal的 pitr 恢复
- wamp如何升级php版本,wamp升级php
- php模拟QQ登录获得skey码,请教:QQ授权第三方登录论坛之authorize模拟访问,一直失败...
- 一起玩react 你不知道的setState
- 设计模式学习之工厂方法模式
- OpenCV绘制透明底的图片,简单易懂讲解alpha通道怎么用
- 数据库SUSPECT(置疑)状态如何解决
- Working Practice-善用酝酿效应
- 打开itools如果提示:订阅设备设备失败
- 基于JSP的在线学习网站 的设计与实现