onDraw(canvas)和dispatchDraw(canvas)方法
绘制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)方法相关推荐
- 用html5做一条线,使用HTML5 canvas绘制线条的方法
使用HTML5 canvas绘制线条的方法 发布时间:2020-08-29 11:24:23 来源:亿速云 阅读:96 作者:小新 这篇文章主要介绍了使用HTML5 canvas绘制线条的方法,具有一 ...
- Silverlight学习笔记三(鼠标点击动态画直线|动态设置Ellipse的Canvas.Top与Canvas.Left|动态设置Stroke属性的方法。)...
我有可能需要把AutoCAD的部分功能搬到浏览器上,先练习一下画直线的方法.如图: MainPage.xaml代码: 大气象 <UserControl x:Class="DrawLin ...
- java drawimage api_HTML5 Canvas API中drawImage()方法的使用实例
drawImage()是一个很关键的方法,它可以引入图像.画布.视频,并对其进行缩放或裁剪. 一共有三种表现形式: 语法 1 JavaScript Code复制内容到剪贴板 context.drawI ...
- 用html制作阴影效果,使用HTML5 Canvas绘制阴影效果的方法
这篇文章主要介绍了使用HTML5 Canvas绘制阴影效果的方法,包括一个3D拉影 边缘模糊效果文字的编写例子,在阴影效果的利用上进一步深入,需要的朋友可以参考下 创建阴影效果需要操作以下4个属性: ...
- canvas 使用GPU的方法
使用 canvas 的 GPU 加速功能的方法主要有两种: 使用支持 GPU 加速的浏览器.许多现代浏览器,如 Chrome.Firefox 和 Safari 等,都支持 GPU 加速.只需使用这些浏 ...
- canvas save()和canvas restore()状态的保存和恢复使用方法及实例
canvas.save()用来保存先前状态的 canvas.restore()用来恢复之前保存的状态 注:两种方法必须搭配使用,否则没有效果 <!DOCTYPE html> <htm ...
- 史上最详细的使用canvas绘制五星红旗的方法
史上最详细的使用canvas绘制五角星的方法 昨天我们在课堂上讲到了HTML5中的canvas标签,canvas标签用于绘制图像(通过脚本,通常是 JavaScript).当天布置的作业就是利用can ...
- 使用canvas给图片添加水印, canvas转换base64,,canvas,图片,base64等转换成二进制文档流的方法,并将合成的图片上传到服务器,...
一,前端合成带水印的图片 一般来说,生成带水印的图片由后端生成,但不乏有时候需要前端来处理.当然,前端处理图片一般不建议,一方面js的处理图片的方法不全,二是有些老版本的浏览器对canvas的支持度不 ...
- html5绘制随机五角星_HTML5 canvas绘制五角星的方法
这篇文章主要介绍了关于HTML5 canvas绘制五角星的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 是HTML5中新增的标签,用于绘制图形,这篇文章主要为大家详细介绍了HTM ...
最新文章
- ThreadLocal类
- 机器学习入门资源不完全汇总
- pythonc语言结构_C语言结构体笔记
- mybatis-逻辑翻页
- axios 最全 请求拦截器 响应拦截器 配置公共请求头 超时时间 以及get delete post put 四种请求传参方式
- [转载]PSCAD调用MATLAB/SIMULINK之接口元件设计
- 数据用户学术分享搜索平台——中期报告
- 11 个非常受欢迎的 JavaScript 动画库
- 谷歌高频面试题-较小的三数之和
- 微信小程序获取用户手机号
- python长度单位换算表_长度单位换算表大全
- 3.12_ValueError: x and y must have same first dimension, but have shapes (100,) and (1,)
- Bitbake中文手册--1(概述)
- 年关将至,房东不肯退押金,应当如何维权?| 法豸
- 解决pycharm里显示数据不完全问题(pandas)
- 符号检验和置信区间R代码
- PDF怎么转换成jpg图片
- linux运行mate,在Ubuntu MATE系统上自动启动程序的方法
- 12年来最大飞跃!黄仁勋发布史上最强GPU,世界首个实时光线追踪新一代图灵架构...
- 【操作教程】如何手动配置EasyNVR安防视频云服务平台的Onvif探测功能?
热门文章
- ie6、ie7下overflow失效
- springcloud的中文文档地址和中国社区
- 在字符串中找出第一个只出现一次的字符
- php递归删除空数组,php 递归删除非空文件夹示例
- 中专学历就该被拒之门外?做Java开发改变命运难吗?
- 数据中台是什么意思?如何建设数据中台?
- 成为最差前端开发的10个建议,唉!传递负能量了
- python 百度识图_用python做图片识别(调用百度API)
- php 调用图,php 缩略图类(附调用示例)
- js如何监听元素事件是否被移除_javascript – 如果一个DOM元素被删除,它的监听器也从内存中删除?...