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什么时候被调用?相关推荐

  1. Android ViewGroup的draw和onDraw的调用时机

    Android ViewGroup的draw和onDraw的调用时机 View.draw和View.onDraw的调用关系 首先,View.draw和View.onDraw是两个不同的方法,只有Vie ...

  2. Onpaint和OnDraw的区别

    (一) OnPaint 和 OnDraw (1)OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中. (2)OnP ...

  3. MFC中OnDraw与OnPaint的区别

    OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中. OnPaint()是CWnd的类成员,负责响应WM_PAIN ...

  4. OnDraw与OnPaint有什么区别

    学习中遇到一个问题,OnDraw与OnPaint有什么区别?上网搜索了一下,又查了一下MSDN和MFC的一些源文件,现整理如下. OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中 ...

  5. 2010.7.27 OnDraw与OnPaint有什么区别

    引用:http://wenku.baidu.com/view/bc9b1c661ed9ad51f01df2ab.html OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用On ...

  6. Invalidate() UpdateData() OnPaint()与OnDraw

    Invalidate()函数 UpdateData()用法 OnPaint()与OnDraw 收藏 vc++ MFC 2010-11-08 16:42:49 阅读208 评论0   字号:大中小 订阅 ...

  7. View的onMeasure()、onLayout()、onDraw()总结

    自定义View是android开发中常有的一项工作,要想自定义View,你就必须熟练掌握View的测量.布局及绘制,了解其原理并会使用. View视图绘制需要搞清楚两个问题,一个是从哪里开始绘制,一个 ...

  8. MFC中的Invalidate、OnDraw、OnPaint函数的作用及绘图概念

    1.绘图概念 GDI绘图分为背景和前景两个画布的绘制,Invalidate()函数强制重绘制, Invalidate()     如果参数为true则在OnPaint函数对背景先进行绘制,再对前景进行 ...

  9. OnDraw和OnPaint函数的区别

    CWnd::OnPaint() 是CWnd类的成员函数,是WM_PAINT 消息的响应函数.当你调用CWnd::UpdateWindow(),CWnd::RedrawWindow()时, 或者窗口被其 ...

最新文章

  1. 抢红包算法 c++_十大排序算法(一):冒泡排序法
  2. Spring boot配置Dubbo三种方式
  3. arcgis怎么用python重新排序,使用ArcGIS脚本工具将点数据进行排序并编号
  4. 基础 - 结构体大小计算
  5. MySQL - 存储过程
  6. jsencrypt加密同一值返回不同密文_密码学原语如何应用?解析密文同态性的妙用...
  7. Axis2搭建WebService服务
  8. Mr.J-- jQuery学习笔记(四)--内容选择器
  9. ASP.NET MVC 自定义Razor视图WorkContext
  10. Java中的文件压缩
  11. graphicsmagick常用命令
  12. Mutual Review
  13. oracle 报错06502,求助!!ORA-06502错误
  14. 车路协同科研教学与实训先导平台 ——一种面向新一代智能交通人才培养的综合实验平台及系统
  15. 云打印微信小程序,自助打印机,无人打印
  16. matlab绘图空间曲线,matlab空间曲线绘图
  17. TP-link WR703N, OpenWrt, Mentohust
  18. 【年终总结】—此生平凡,终不简单
  19. 5.16 按照自定义序列对城市进行排序 [原创Excel教程]
  20. winPE下安装系统ghost恢复系统图文详细教程

热门文章

  1. python学习-日志(logging的定义、参数、format、示例代码、创建logging对象、设置Handler)
  2. m.2接口和nvme区别_原来M.2、SATA接口的固态盘有这样的差别,难怪大家都选“它”!...
  3. python统计单词个数算法_统计一篇英文文章单词个数,取出出现频次前10的单词(Python实现)...
  4. js多层对象数组 合并_13个你必须知道的JS数组技巧
  5. linux panic 构造_Linux Wireless架构总结
  6. STM32U5来了,100份好礼免费送!
  7. 一个电子工程师的完美人生!
  8. android getwindow 在fragment不能使用,Android Fragment 布局使用 fitsSystemWindows = true 无效解决方案...
  9. win7安装matlab的问题,安装matlab7.0出现问题,我是win7+64位系统,求解
  10. pythoneasyinstall安装第三方库,Python安装第三方库的3种方法