Android 自定义View

时间:2021-10-02 09:29:17

Android 自定义View流程中的几个方法解析:

  1. onFinishInflate():从布局文件.xml加载完组件后回调
  2. onMeasure() :调用该方法负责测量组件大小
  3. onSizeChanged() :组件大小发生改变时回调该方法
  4. onLayout() :该方法负责确定组件的显示的位置
  5. onDraw() :该方法负责将组件在屏幕中画出来

自定义View流程中几个方法的执行顺序就是这排列的顺序。

1)onMeasure():该方法负责对控件大小进行测量

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        //该方法的参数是根据布局文件中的设置获取的

      super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
      int width=MeasureSpec.getSize(widthMeasureSpec);//获取控件的宽
//在其他地方可以通过getMeasuredWidth()获取该值 }

2)onLayout():负责确定View显示的位置

子视图的具体位置都是相对于父视图而言的。View的onLayout()方法为空实现,而ViewGroup的onLayout()方法是abstract的,所以继承自ViewGroup的View必需覆写onLayout()方法。

这该方法的最后用以下方法设置子View位置。

        child.layout(l, t, r, b);

深入了解参考:http://www.codekk.com/blogs/detail/54cfab086c4761e5001b253f

http://www.gcssloop.com/customview/CustomViewProcess

http://www.lai18.com/content/10251886.html

Android 自定义View的更多相关文章

  1. Android自定义View 画弧形,文字,并增加动画效果

    一个简单的Android自定义View的demo,画弧形,文字,开启一个多线程更新ui界面,在子线程更新ui是不允许的,但是View提供了方法,让我们来了解下吧. 1.封装一个抽象的View类   B ...

  2. (转)[原] Android 自定义View 密码框 例子

    遵从准则 暴露您view中所有影响可见外观的属性或者行为. 通过XML添加和设置样式 通过元素的属性来控制其外观和行为,支持和重要事件交流的事件监听器 详细步骤见:Android 自定义View步骤 ...

  3. Android 自定义View合集

    自定义控件学习 https://github.com/GcsSloop/AndroidNote/tree/master/CustomView 小良自定义控件合集 https://github.com/ ...

  4. Android 自定义View (五)——实践

    前言: 前面已经介绍了<Android 自定义 view(四)-- onMeasure 方法理解>,那么这次我们就来小实践下吧 任务: 公司现有两个任务需要我完成 (1)监测液化天然气液压 ...

  5. Android 自定义 view(四)&mdash&semi;&mdash&semi; onMeasure 方法理解

    前言: 前面我们已经学过<Android 自定义 view(三)-- onDraw 方法理解>,那么接下我们还需要继续去理解自定义view里面的onMeasure 方法 推荐文章: htt ...

  6. Android 自定义 view(三)&mdash&semi;&mdash&semi; onDraw 方法理解

    前言: 上一篇已经介绍了用自己定义的属性怎么简单定义一个view<Android 自定义view(二) -- attr 使用>,那么接下来我们继续深究自定义view,下一步将要去简单理解自 ...

  7. Android 自定义view(二) &mdash&semi;&mdash&semi; attr 使用

    前言: attr 在前一篇文章<Android 自定义view -- attr理解>已经简单的进行了介绍和创建,那么这篇文章就来一步步说说attr的简单使用吧 自定义view简单实现步骤 ...

  8. Android自定义View之CircleView

    Android自定义View之CircleView 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/5999 ...

  9. Android 自定义View及其在布局文件中的使用示例&lpar;三&rpar;&colon;结合Android 4&period;4&period;2&lowbar;r1源码分析onMeasure过程

    转载请注明出处 http://www.cnblogs.com/crashmaker/p/3549365.html From crash_coder linguowu linguowu0622@gami ...

随机推荐

  1. 【leetcode】Remove Duplicates from Sorted Array II

    Remove Duplicates from Sorted Array II Follow up for "Remove Duplicates":What if duplicate ...

  2. Linux系统入门学习:在curl中设置自定义的HTTP头

    http://www.linuxidc.com/Linux/2015-02/114220.htm

  3. Stockbroker Grapevine&lpar;floyd&rpar;

    Stockbroker Grapevine Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 28231   Accepted: ...

  4. VMWare9下基于Ubuntu12&period;10搭建Hadoop-1&period;2&period;1集群

    VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群 下一篇:VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群-整合Zookeeper和Hbase 近期 ...

  5. android中button点击频率控制

    public class Utils { private static long lastClickTime; public static boolean isFastDoubleClick() { ...

  6. System&period;Threading&period;Timer的使用技巧

    转自:http://www.360doc.com/content/11/0812/11/1039473_139824496.shtml# System.Threading.Timer timer = ...

  7. SQL-LINQ-Lambda 语法对照

    SQL LINQ Lambda  SELECT *FROM Employees from e in Employees  select e Employees .Select (e => e)  ...

  8. &commat;RequestMapping 相关 spring

    *      * @param request HttpServletRequest     * @param delList 削除Idエスト     * @return 削除結果     * @th ...

  9. Spring源码情操陶冶-自定义节点的解析

    本文承接前文Spring源码情操陶冶-DefaultBeanDefinitionDocumentReader#parseBeanDefinitions,特开辟出一块新地来啃啃这块有意思的骨头 自定义节 ...

  10. nginx实践&lpar;五&rpar;之代理服务&lpar;正向代理与反向代理介绍&rpar;

    正向代理 正向代理代理是为客户端服务,代理负责DNS解析域名到对应ip,并进行访问服务端,返回响应给客户端 反向代理 客户端自己负责请求DNS解析域名到对应ip,服务端通过代理分发流量,进行负载均衡 ...