绘制VIew本身的内容,通过调用View.onDraw(canvas)函数实现

绘制自己的孩子通过dispatchDraw(canvas)实现

View组件的绘制会调用draw(Canvas canvas)方法,draw过程中主要是先画Drawable背景,对 drawable调用setBounds()然后是draw(Canvas c)方法.有点注意的是背景drawable的实际大小会影响view组件的大小,drawable的实际大小通过getIntrinsicWidth()和getIntrinsicHeight()获取,当背景比较大时view组件大小等于背景drawable的大小

画完背景后,draw过程会调用onDraw(Canvas canvas)方法,然后就是dispatchDraw(Canvas canvas)方法, dispatchDraw()主要是分发给子组件进行绘制,我们通常定制组件的时候重写的是onDraw()方法。值得注意的是ViewGroup容器组件的绘制,当它没有背景时直接调用的是dispatchDraw()方法, 而绕过了draw()方法,当它有背景的时候就调用draw()方法,而draw()方法里包含了dispatchDraw()方法的调用。因此要在ViewGroup上绘制东西的时候往往重写的是dispatchDraw()方法而不是onDraw()方法,或者自定制一个Drawable,重写它的draw(Canvas c)和 getIntrinsicWidth(),

getIntrinsicHeight()方法,然后设为背景。

onDraw(canvas)和dispatchDraw(canvas)方法相关推荐

  1. 用html5做一条线,使用HTML5 canvas绘制线条的方法

    使用HTML5 canvas绘制线条的方法 发布时间:2020-08-29 11:24:23 来源:亿速云 阅读:96 作者:小新 这篇文章主要介绍了使用HTML5 canvas绘制线条的方法,具有一 ...

  2. Silverlight学习笔记三(鼠标点击动态画直线|动态设置Ellipse的Canvas.Top与Canvas.Left|动态设置Stroke属性的方法。)...

    我有可能需要把AutoCAD的部分功能搬到浏览器上,先练习一下画直线的方法.如图: MainPage.xaml代码: 大气象 <UserControl x:Class="DrawLin ...

  3. java drawimage api_HTML5 Canvas API中drawImage()方法的使用实例

    drawImage()是一个很关键的方法,它可以引入图像.画布.视频,并对其进行缩放或裁剪. 一共有三种表现形式: 语法 1 JavaScript Code复制内容到剪贴板 context.drawI ...

  4. 用html制作阴影效果,使用HTML5 Canvas绘制阴影效果的方法

    这篇文章主要介绍了使用HTML5 Canvas绘制阴影效果的方法,包括一个3D拉影 边缘模糊效果文字的编写例子,在阴影效果的利用上进一步深入,需要的朋友可以参考下 创建阴影效果需要操作以下4个属性: ...

  5. canvas 使用GPU的方法

    使用 canvas 的 GPU 加速功能的方法主要有两种: 使用支持 GPU 加速的浏览器.许多现代浏览器,如 Chrome.Firefox 和 Safari 等,都支持 GPU 加速.只需使用这些浏 ...

  6. canvas save()和canvas restore()状态的保存和恢复使用方法及实例

    canvas.save()用来保存先前状态的 canvas.restore()用来恢复之前保存的状态 注:两种方法必须搭配使用,否则没有效果 <!DOCTYPE html> <htm ...

  7. 史上最详细的使用canvas绘制五星红旗的方法

    史上最详细的使用canvas绘制五角星的方法 昨天我们在课堂上讲到了HTML5中的canvas标签,canvas标签用于绘制图像(通过脚本,通常是 JavaScript).当天布置的作业就是利用can ...

  8. 使用canvas给图片添加水印, canvas转换base64,,canvas,图片,base64等转换成二进制文档流的方法,并将合成的图片上传到服务器,...

    一,前端合成带水印的图片 一般来说,生成带水印的图片由后端生成,但不乏有时候需要前端来处理.当然,前端处理图片一般不建议,一方面js的处理图片的方法不全,二是有些老版本的浏览器对canvas的支持度不 ...

  9. html5绘制随机五角星_HTML5 canvas绘制五角星的方法

    这篇文章主要介绍了关于HTML5 canvas绘制五角星的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 是HTML5中新增的标签,用于绘制图形,这篇文章主要为大家详细介绍了HTM ...

最新文章

  1. ThreadLocal类
  2. 机器学习入门资源不完全汇总
  3. pythonc语言结构_C语言结构体笔记
  4. mybatis-逻辑翻页
  5. axios 最全 请求拦截器 响应拦截器 配置公共请求头 超时时间 以及get delete post put 四种请求传参方式
  6. [转载]PSCAD调用MATLAB/SIMULINK之接口元件设计
  7. 数据用户学术分享搜索平台——中期报告
  8. 11 个非常受欢迎的 JavaScript 动画库
  9. 谷歌高频面试题-较小的三数之和
  10. 微信小程序获取用户手机号
  11. python长度单位换算表_长度单位换算表大全
  12. 3.12_ValueError: x and y must have same first dimension, but have shapes (100,) and (1,)
  13. Bitbake中文手册--1(概述)
  14. 年关将至,房东不肯退押金,应当如何维权?| 法豸
  15. 解决pycharm里显示数据不完全问题(pandas)
  16. 符号检验和置信区间R代码
  17. PDF怎么转换成jpg图片
  18. linux运行mate,在Ubuntu MATE系统上自动启动程序的方法
  19. 12年来最大飞跃!黄仁勋发布史上最强GPU,世界首个实时光线追踪新一代图灵架构...
  20. 【操作教程】如何手动配置EasyNVR安防视频云服务平台的Onvif探测功能?

热门文章

  1. ie6、ie7下overflow失效
  2. springcloud的中文文档地址和中国社区
  3. 在字符串中找出第一个只出现一次的字符
  4. php递归删除空数组,php 递归删除非空文件夹示例
  5. 中专学历就该被拒之门外?做Java开发改变命运难吗?
  6. 数据中台是什么意思?如何建设数据中台?
  7. 成为最差前端开发的10个建议,唉!传递负能量了
  8. python 百度识图_用python做图片识别(调用百度API)
  9. php 调用图,php 缩略图类(附调用示例)
  10. js如何监听元素事件是否被移除_javascript – 如果一个DOM元素被删除,它的监听器也从内存中删除?...