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引用后触发",这是我的理解. 



且在自定义组件的各个方法内放置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. cocos2dx 移植android 报错
  2. Android底部导航栏实现(四)之TabLayout+ViewPager
  3. 关于LinearLayout布局中,子控件平分宽度
  4. 让Android不播放关机动画,而是显示一个关机进度条的方法
  5. Android(安卓)图片加载库Glide
  6. android自定义控件
  7. android下拉菜单spinner的使用方法
  8. android开机logo制作
  9. Android第五期 - 更新自己的apk本地与网络两种方法

随机推荐

  1. [Intent] 调用其他应用 setComponent
  2. android switch语句case expressions mus
  3. android 语音朗读短消息
  4. 解决Android Studio 无法在线更新的问题
  5. 7.1.1 ImageSwitcher案例分析详解
  6. Android Drawable 在代码中实现android:t
  7. Android自适应不同版本的程序退出方法
  8. Android各版本名称
  9. Android编译时报错:ERROR: Could not find
  10. Android(安卓)学习记录 之 notification