动态图形绘制的基本思路是,创建一个类继承View类(或者继承SurfaceView类)。覆盖onCreate()方法,使用Canvas对象在界面上绘制不同的图形,使用invalidate()方法刷新界面。下面通过一个弹球实例来讲述动态图形绘制的基本思路。该实例是在界面上动态绘制一个小球,当小球触顶或者触底时自动改变方向继续运行。实例步骤说明如下:

public class MainActivity extends Activity
{ImageView img;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);MyView v = new MyView(this, null);setContentView(v);}class MyView extends View implements Runnable{private int x = 20, y = 20;public MyView(Context context, AttributeSet attrs){super(context, attrs);setFocusable(true);new Thread(this).start();// TODO Auto-generated constructor stub}@Overridepublic void run(){// TODO Auto-generated method stub// Looper.prepare();while (!Thread.currentThread().isInterrupted()){Message m = new Message();m.what = 0x101;Log.e("Thread", "running---");refreshHandler.sendMessage(m);try{Thread.sleep(100);} catch (Exception e){e.printStackTrace();}// Looper.loop();}}@Overrideprotected void onDraw(Canvas canvas){// TODO Auto-generated method stubsuper.onDraw(canvas);Paint paint = new Paint();paint.setColor(Color.RED);canvas.drawCircle(x, y, 10, paint);}RefreshHandler refreshHandler = new RefreshHandler(){@Overridepublic void handleMessage(Message msg){// TODO Auto-generated method stubsuper.handleMessage(msg);if(msg.what==0x101){MyView.this.update();MyView.this.invalidate();}}};class RefreshHandler extends Handler{}private void update(){int h = getHeight();y += 5;if (y >= h)y = 20;}}}

动态绘制图形的基本思路相关推荐

  1. esri-leaflet入门教程(5)- 动态绘制图形

    esri-leaflet入门教程(5)- 动态绘制图形 by 李远祥 在上一章节中已经说明了esr-leaflet是如何加载ArcGIS Server提供的各种服务,这些都是服务本身来决定的,API脚 ...

  2. css svg做动图,用svg动态绘制图形

    以此前对svg的了解,就是通过rect/circle/line--等绘制规则图形,或者利用path路径来绘制更复杂的图形.但是这种绘制是,当我们写好svg的xml文件嵌入html代码,页面载入的时候, ...

  3. OpenCV-Python实战(番外篇)——OpenCV中利用鼠标事件动态绘制图形

    OpenCV-Python实战(番外篇)--OpenCV中利用鼠标事件动态绘制图形 使用鼠标事件动态绘制 动态绘制图形 动态绘制图形和文本 相关链接 使用鼠标事件动态绘制 我们已经在<OpenC ...

  4. Leaflet学习之路五——动态绘制图形(点、线、圆、多边形)

    leaflet动态绘制图形 动态绘点 动态绘线 动态绘多边形 动态绘制矩形 2020.3.16更新 更新日志: 2019.1.14:更新了绘制多边形时tmpline没有移除的问题 2019.1.15: ...

  5. 鼠标移动框选动态绘制图形,基于zrender

    本文只介绍根据鼠标事件动态绘制矩形方法 zrender实现简易画板功能可绘制大部分常用图形在文章末尾可参考 像下图这样,可随心所欲绘制你想绘制的矩形: 完整代码:(有详细注释,有任何疑问欢迎留言) & ...

  6. python之cv2动态绘制图形

    本文部分参考了以下链接内容:https://blog.csdn.net/Vertira/article/details/123631185 代码如下: 说明:按下'c'键实现绘制圆功能:按下'r'键实 ...

  7. java 绘制动态的图形

    效果如下 代码如下(初始版本) package cn.com.com;import java.awt.Graphics; import java.awt.Graphics2D; import java ...

  8. 基于SVG的鼠标动态绘制矩形和动态放置图片

    web开发中经常会遇到需要在图片上或画布上使用鼠标动态绘制图形,或者用图形或者小图片标注位置的需求,这里选择使用svg来实现. 一.在html中添加svg标签,并在其中放置图片(做背景) <sv ...

  9. SVG动态绘制不规则图形

    作者简介 wuyue 蚂蚁金服·数据体验技术团队 在浏览器中,任意的二维平面图形均可以通过path路径的形式描述.然后底层api 直接静态绘制出来.但是如果想动态的绘制路径,浏览器是没有直接支持方式的 ...

最新文章

  1. shell编程--case判断
  2. C++/CLI思辨录之内部指针的两面性
  3. PL/SQL -- 动态SQL调用包中函数或过程
  4. 微型计算机在现代通信中的应用,计算机基础单元试卷
  5. Acwing第 16 场周赛【未完结】
  6. 锐捷升级最新版本出现虚拟网卡安装失败?
  7. org.hibernate.hql.ast.QuerySyntaxException is not mapped异常
  8. 数据库高可用 MHA 搭建手册
  9. python工资这么高为什么不学-现在Python就业薪资高吗?
  10. C++读取和写入文件(fstream等)
  11. ubuntu 下载工具 easyMule2.0
  12. linux 系统开启火狐命令_linux安装火狐命令
  13. [ecshop调试]ecshop 数据库查询缓存详解 有三种缓存,query_cache(数据库查询缓存)、static_cache(静态缓存)和cache(普通的缓存)
  14. CSS 3 颜色属性
  15. Excel 2010启用宏
  16. 迅雷离线下载脚本 — LinuxTOY
  17. 带tan计算机在线,tan等于(万能计算器在线使用)
  18. 使用DNSLog进行盲打
  19. .NET发邮件(验证码)
  20. PyCharm 和 VScode 我更适合用哪个?

热门文章

  1. 工商管理专业知识与实务(中级)【6】
  2. c语言less函数,Less 函数
  3. 晶联讯12864液晶+STM32+HAL库 IO模拟SPI成功实现显示。
  4. 【数学】定积分和不定积分的区别
  5. k8s入门:存储(storage)
  6. 提交git仓库报错Your branch is up-to-date with ‘origin/master‘.
  7. java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
  8. c# 调用Google查询天气 手机所属地 农历转换公历
  9. ALV中的回车事件相应及添加F4帮助
  10. kal8linux密码,KAL1 LINUX 官方文档之arm上的ka1i---树莓派全盘加密