Android 中自定义属性(attr.xml,TypedArray)的使用! 

http://blog.csdn.net/Android_Tutor/article/details/5508615 

http://www.cnblogs.com/zwl12549/archive/2011/04/13/2015366.html 
http://blog.csdn.net/Android_Tutor/article/details/5508615 

android中自定义组件 
http://blog.csdn.net/lganggang131/article/details/6653866 
构建自定义组件 
http://blog.csdn.net/shiqx429/article/details/3865581 
Android 自定义复合组件Demo 
http://www.cnblogs.com/TerryBlog/archive/2010/08/03/1791568.html 

http://www.d-android.com/developer/forum.php?mod=viewthread&tid=30307 
所谓自定义控件(或称组件)也就是编写自己的控件类型,而非Android中提供的标准的控件,如TextView,CheckBox等等.不过自定义的控件一般也都是从标准控件继承来的,或者是多种控件组合,或者是对标准控件的属性进行改变而得到的自己满意的控件. 
    自定义控件可能会有很多种方法,这里只介绍我要介绍的方法. 


    在这种方法中,大概的步骤是这样的 
引用     1.我们的自定义控件和其他的控件一样,应该写成一个类,而这个类的属性是是有自己来决定的. 
    2.我们要在res/values目录下建立一个attrs.xml的文件,并在此文件中增加对控件的属性的定义. 
    3.使用AttributeSet来完成控件类的构造函数,并在构造函数中将自定义控件类中变量与attrs.xml中的属性连接起来. 
    4.在自定义控件类中使用这些已经连接的属性变量. 
    5.将自定义的控件类定义到布局用的xml文件中去. 
    6.在界面中生成此自定义控件类对象,并加以使用.

==================================================================== 
在View类中的有一段描述: 
引用 Implementing a Custom View 

To implement a custom view, you will usually begin by providing overrides for some of the standard methods that the framework calls on all views. You do not need to override all of these methods. In fact, you can start by just overriding onDraw(android.graphics.Canvas).


关于onFinishInflate方法的理解 

onFinishInflate 当View中所有的子控件均被映射成xml后触发 
http://www.d-android.com/developer/forum.php?mod=viewthread&tid=30307 

这种解释好像不太正确...看API,onFinishInflate 方法是在创建custom View时的Creation部分被执行的...所以应该是 "当View中所有的子空间从xml引用后触发",这是我的理解. 

Android使用AttributeSet自定义控件的方法_第1张图片

且在自定义组件的各个方法内放置Log的方法,观察其执行的顺序也的确如API中描述一致. 
 



以下的链接讲解相对详细了 
http://www.apkbus.com/android-3275-1-1.html 


自定义View的常用方法: 

onFinishInflate() 当View中所有的子控件均被映射成xml后触发 

onMeasure(int, int) 确定所有子元素的大小 

onLayout(boolean, int, int, int, int) 当View分配所有的子元素的大小和位置时触发 

onSizeChanged(int, int, int, int) 当view的大小发生变化时触发 

onDraw(Canvas) view渲染内容的细节 

onKeyDown(int, KeyEvent) 有按键按下后触发 

onKeyUp(int, KeyEvent) 有按键按下后弹起时触发 

onTrackballEvent(MotionEvent) 轨迹球事件 

onTouchEvent(MotionEvent) 触屏事件 

onFocusChanged(boolean, int, Rect) 当View获取或失去焦点时触发 

onWindowFocusChanged(boolean) 当窗口包含的view获取或失去焦点时触发 

onAttachedToWindow() 当view被附着到一个窗口时触发 

onDetachedFromWindow() 当view离开附着的窗口时触发,Android123提示该方法和  onAttachedToWindow() 是相反的。 

onWindowVisibilityChanged(int) 当窗口中包含的可见的view发生变化时触发 
原文地址:http://macleo.iteye.com/blog/1463121

更多相关文章

  1. 让Android不播放关机动画,而是显示一个关机进度条的方法
  2. Android TabLayout导航条属性的设置
  3. android自定义控件
  4. android下拉菜单spinner的使用方法
  5. Android第五期 - 更新自己的apk本地与网络两种方法
  6. WebView控件中的javascript与Android本地功能交互
  7. 常见UI控件的使用-富文本、textview
  8. Android——ImageButton【图片按钮】的点击事件与属性

随机推荐

  1. 常用SQL语句查询分享
  2. ASP.NET和MSSQL高性能分页实例代码
  3. SQL SERVER使用ODBC 驱动建立的链接服务
  4. SQL语句优化提高数据库性能
  5. SQL Server无法收缩日志文件的原因分析及
  6. 实例详解Group by和Having子句
  7. 详解Sql基础语法
  8. 详解SQL死锁检测的方法
  9. 将表里的数据批量生成INSERT语句的存储过
  10. SqlServer使用 case when 解决多条件模糊