[Android基础知识] 之十一: View类的原理与使用
来源:互联网 发布:非农数据在哪里看 编辑:程序博客网 时间:2024/04/28 05:50
原理方面,可以看这篇文章:<<Android视图绘制流程完全解析,带你一步步深入了解View(二)>>。里面详细介绍了在调用OnMeasure()和OnLayout()之后(这二者一个是机器屏幕尺寸测量,一个是负责UI元素布局),onDraw()就开始工作了,事实上这时才真正地开始对视图进行绘制。ViewRoot中的代码会继续执行并创建出一个Canvas对象,然后调用View的draw()方法来执行具体的绘制工作。draw()方法内部的绘制过程总共可以分为六步,该文对其中重要步骤进行了详细介绍。
原文连接:http://my.oschina.net/xwy/blog/203198
这篇《Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)》讲解了androdi上view类里如何画图。
连接:http://blog.csdn.net/rhljiayou/article/details/7212620
这篇《Android中View绘制流程以及invalidate()等相关方法分析》直接讲解了invalidate()方法 的使用,及其工作流程。说明:请求重绘View树,即draw()过程,假如视图发生大小没有变化就不会调用layout()过程,并且只绘制那些“需要重绘的”视图,即谁(View的话,只绘制该View ;ViewGroup,则绘制整个ViewGroup)请求invalidate()方法,就绘制该视图。 一般引起invalidate()操作的函数如下: 1、直接调用invalidate()方法,请求重新draw(),但只会绘制调用者本身。2、setSelection()方法 :请求重新draw(),但只会绘制调用者本身。3、setVisibility()方法 : 当View可视状态在INVISIBLE转换VISIBLE时,会间接调用invalidate()方法。 继而绘制该View。 4 、setEnabled()方法 : 请求重新draw(),但不会重新绘制任何视图包括该调用者本身。
这篇《 Android---自定义的view类(一)》中,用一个生动的例子讲解了android中游戏绘图最基本的原理。该例中两个球不断碰撞的View,主要由一个线程来不断更新View内两个球的位置,在发现两个球和墙壁发生碰撞后,改变球的逻辑参数,更新完后,调用postInvalidate(),重绘界面。
连接:http://blog.csdn.net/lxw1980/article/details/6031978
这篇《Android上让View自动更新的另一种办法(非线程)》,讲解了在不利用线程更新界面的情况下,使用invalidate()更新界面的方法。
连接:http://blog.csdn.net/lxw1980/article/details/6168463
- [Android基础知识] 之十一: View类的原理与使用
- Android 开发艺术与探究 第三章 View的事件体系之View的基础知识
- 自定义控件之View原理与使用
- 自定义控件之View原理与使用
- Android-View事件体系之View的基础知识
- Android自定义view之基础知识
- Android 自定义View的原理与基础
- Android基础知识(十一)之新特性
- Android之:View的setTag()与getTag()方法使用
- [Android 基础知识] 之 二十一 UI与Handler实例之小球碰撞
- android 高级之旅 (十一) shareSDK的接入与使用
- C#基础知识之十一
- Android View之View绘制原理
- android 基础知识 十一
- Android原理之 View、ViewGroup
- android之View工作原理
- Android基础知识梳理之View相关知识
- android自定义View之零散基础知识
- 对偶(数学)
- Android开发之Frame动画(帧动画)
- values-11,values-14文件夹报错
- 数据流图解析
- 这是什么东西?
- [Android基础知识] 之十一: View类的原理与使用
- android(5) 等待窗口
- PCIe驱动开发接口函数
- 第十一周项目四类族的设计(1)
- 常遇到的浏览器兼容性问题
- JAVA程序员发展路线
- 表单数据提交方式,及后台获取数据方式
- ios 是否安装某个应用
- 用CSS画三角形,纯CSS绘制三角形的代码