绘制容器类:

//图形绘制容器
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的使用-绘制组合图型,并使其移动相关推荐

  1. python绘制组合图_Python如何绘制组合图 Python绘制组合图代码示例

    Python如何绘制组合图?本篇文章小编给大家分享一下Python绘制组合图代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 绘制组合图: 组合 ...

  2. android 雷达坐标系,Android Path之绘制雷达图的技巧

    Android Path之绘制雷达图的技巧,绘制蜘蛛网络其实就是绘制指定边数的正多边形,这一步比较简单,比较难的可能就是每个顶点的算法,相关注释我都写了,还有一张来自互联网的图以助于思考,如下: 第一 ...

  3. Android UI + Function

    第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...

  4. Android UI个性style

    Android开源项目第一篇--个性化控件(View) ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar ...

  5. Origin绘图技巧——组合图

    作为研究生,做实验是家常便饭,实验结束后利用纷繁冗杂的原始数据,进行美化处理,让自己的实验成果给人眼前一亮的感觉不是一件轻松的事情. Origin是一款进行数据分析和绘图的软件,具有十分强大的功能,能 ...

  6. R统计绘图-corrplot绘制热图及颜色、字体等细节修改1

    有师妹想要更改热图的颜色和字体,想着之前相关性绘图等推文只是使用corrplot默认的颜色绘图,为了帮师妹解惑,今天就写一篇,怎么设置热图颜色和字体等细节到推文.其实看一遍R语言实战|入门3:图形初阶 ...

  7. android ui框架详解,多图详解 “Android UI”设计官方教程(二)

    编者注:本文为Android的官方开发者博客发了一份幻灯片的翻译文档的第二部分,专门介绍了一些Android UI设计的小贴士,我们在介绍这个幻灯片的第一部分<多图详解 "Androi ...

  8. android ui秘笈,看图说话_Android_UI_设计秘笈.pdf

    March 14 2011 看图说话看图说话 Android UI 设计秘笈设计秘笈 Part II Android 的官方开发者博客发了一份幻灯片 介绍了一些 Android UI 设计的小贴士 整 ...

  9. android教程 - android ui 介绍,多图详解 “Android UI”设计官方教程

    我们曾经给大家一个<MeeGo移动终端设备开发UI设计基础教程>,同时很多朋友都在寻找Android UI开发的教程,我们从Android的官方开发者博客找了一份幻灯片,介绍了一些Andr ...

最新文章

  1. 阿里云MWC 2019发布7款重磅产品,助力全球企业迈向智能化
  2. LeetCode 多线程 1116. 打印零与奇偶数
  3. 经典的 Fork 炸弹解析
  4. SAP Cloud for Customer使用移动设备访问系统的硬件要求
  5. Django从理论到实战(part33)--表关系
  6. MFC BCGControlBar 库 使用方法
  7. ssl1500-最短路上的统计【Floyd】
  8. 单链表实例之学生系统
  9. 北大mooc课程平台
  10. 实体框架提供程序类型无法加载?
  11. postgresql 9.1 基于wal的 pitr 恢复
  12. wamp如何升级php版本,wamp升级php
  13. php模拟QQ登录获得skey码,请教:QQ授权第三方登录论坛之authorize模拟访问,一直失败...
  14. 一起玩react 你不知道的setState
  15. 设计模式学习之工厂方法模式
  16. OpenCV绘制透明底的图片,简单易懂讲解alpha通道怎么用
  17. 数据库SUSPECT(置疑)状态如何解决
  18. Working Practice-善用酝酿效应
  19. 打开itools如果提示:订阅设备设备失败
  20. 基于JSP的在线学习网站 的设计与实现

热门文章

  1. MATLAB【十四】————遍历三层文件夹操作
  2. Android开发中libs包下面的mips、armeabi、armeabi-v7a和x86
  3. c如何正常中断一个运行的线程
  4. Redis消息通知系统的实现
  5. Linux下各类TCP网络服务器的实现源代码
  6. WMI Series :管理对象的信息查询和方法访问
  7. SQL语句优化技术分析
  8. 浅析ado.net获取数据库元数据信息
  9. 调试JDK源码-一步一步看HashMap怎么Hash和扩容
  10. Windows客户端C/C++编程规范“建议”——宏