onDraw什么时候被调用?
1、onDraw是在View初化完成之后开始调用
2、postInvalidate()是重绘的,也就是调用postInvalidate()后系统会重新调用onDraw方法画一次
onDraw实例:
Java code
@Override
public void onDraw(Canvas canvas) {
// 首先定义一个paint
Paint paint = new Paint();
// 绘制矩形区域-实心矩形
// 设置颜色
paint.setColor(Color.WHITE);
// 设置样式-填充
paint.setStyle(Style.FILL);
// 绘制一个矩形
canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);
// 绘空心矩形
// 设置颜色
paint.setColor(Color.RED);
// 设置样式-空心矩形
paint.setStyle(Style.STROKE);
// 绘制一个矩形
canvas.drawRect(new Rect(10, 10, 50, 20), paint);
// 绘文字
// 设置颜色
paint.setColor(Color.GREEN);
// 绘文字
canvas.drawText(str, 30, 30, paint);
// 绘图
// 从资源文件中生成位图
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
// 绘图
canvas.drawBitmap(bitmap, 10, 10, paint);
}
onDraw什么时候被调用?相关推荐
- Android ViewGroup的draw和onDraw的调用时机
Android ViewGroup的draw和onDraw的调用时机 View.draw和View.onDraw的调用关系 首先,View.draw和View.onDraw是两个不同的方法,只有Vie ...
- Onpaint和OnDraw的区别
(一) OnPaint 和 OnDraw (1)OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中. (2)OnP ...
- MFC中OnDraw与OnPaint的区别
OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中. OnPaint()是CWnd的类成员,负责响应WM_PAIN ...
- OnDraw与OnPaint有什么区别
学习中遇到一个问题,OnDraw与OnPaint有什么区别?上网搜索了一下,又查了一下MSDN和MFC的一些源文件,现整理如下. OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中 ...
- 2010.7.27 OnDraw与OnPaint有什么区别
引用:http://wenku.baidu.com/view/bc9b1c661ed9ad51f01df2ab.html OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用On ...
- Invalidate() UpdateData() OnPaint()与OnDraw
Invalidate()函数 UpdateData()用法 OnPaint()与OnDraw 收藏 vc++ MFC 2010-11-08 16:42:49 阅读208 评论0 字号:大中小 订阅 ...
- View的onMeasure()、onLayout()、onDraw()总结
自定义View是android开发中常有的一项工作,要想自定义View,你就必须熟练掌握View的测量.布局及绘制,了解其原理并会使用. View视图绘制需要搞清楚两个问题,一个是从哪里开始绘制,一个 ...
- MFC中的Invalidate、OnDraw、OnPaint函数的作用及绘图概念
1.绘图概念 GDI绘图分为背景和前景两个画布的绘制,Invalidate()函数强制重绘制, Invalidate() 如果参数为true则在OnPaint函数对背景先进行绘制,再对前景进行 ...
- OnDraw和OnPaint函数的区别
CWnd::OnPaint() 是CWnd类的成员函数,是WM_PAINT 消息的响应函数.当你调用CWnd::UpdateWindow(),CWnd::RedrawWindow()时, 或者窗口被其 ...
最新文章
- 抢红包算法 c++_十大排序算法(一):冒泡排序法
- Spring boot配置Dubbo三种方式
- arcgis怎么用python重新排序,使用ArcGIS脚本工具将点数据进行排序并编号
- 基础 - 结构体大小计算
- MySQL - 存储过程
- jsencrypt加密同一值返回不同密文_密码学原语如何应用?解析密文同态性的妙用...
- Axis2搭建WebService服务
- Mr.J-- jQuery学习笔记(四)--内容选择器
- ASP.NET MVC 自定义Razor视图WorkContext
- Java中的文件压缩
- graphicsmagick常用命令
- Mutual Review
- oracle 报错06502,求助!!ORA-06502错误
- 车路协同科研教学与实训先导平台 ——一种面向新一代智能交通人才培养的综合实验平台及系统
- 云打印微信小程序,自助打印机,无人打印
- matlab绘图空间曲线,matlab空间曲线绘图
- TP-link WR703N, OpenWrt, Mentohust
- 【年终总结】—此生平凡,终不简单
- 5.16 按照自定义序列对城市进行排序 [原创Excel教程]
- winPE下安装系统ghost恢复系统图文详细教程
热门文章
- python学习-日志(logging的定义、参数、format、示例代码、创建logging对象、设置Handler)
- m.2接口和nvme区别_原来M.2、SATA接口的固态盘有这样的差别,难怪大家都选“它”!...
- python统计单词个数算法_统计一篇英文文章单词个数,取出出现频次前10的单词(Python实现)...
- js多层对象数组 合并_13个你必须知道的JS数组技巧
- linux panic 构造_Linux Wireless架构总结
- STM32U5来了,100份好礼免费送!
- 一个电子工程师的完美人生!
- android getwindow 在fragment不能使用,Android Fragment 布局使用 fitsSystemWindows = true 无效解决方案...
- win7安装matlab的问题,安装matlab7.0出现问题,我是win7+64位系统,求解
- pythoneasyinstall安装第三方库,Python安装第三方库的3种方法