Android高手进阶教程(四)之----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发生变化时触发
分享到:
相关推荐
《Android自定义控件开发入门与实战》这本书深入浅出地讲解了如何在Android平台上创建和使用自定义控件,旨在帮助开发者从基础知识到实战技巧,全方位掌握这一核心技术。 一、自定义控件基础 自定义控件在Android中...
接下来,我们可以在布局XML文件中使用这个自定义控件,就像使用其他标准控件一样。别忘了在`<merge>`或`<layout>`标签内引入自定义控件的命名空间,并在`<TestCustomWidget>`标签中指定自定义属性: ```xml ...
在Android开发中,自定义控件是提升应用用户体验和界面设计独特性的重要手段。通过将系统提供的基础控件进行组合和扩展,我们可以创造出满足特定需求的复杂组件。本教程将深入探讨如何在Android Studio中利用现有...
通过这些步骤,你可以在Mono for Android中成功创建并使用自定义控件。这不仅可以使你的应用界面更加个性化,还能提高代码的复用性,减少工作量。对于初学者来说,理解并实践这些知识点是提升Android开发技能的关键...
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。本示例"Android 自定义控件简单Demo"将向我们展示如何创建一个结合图片和文字的自定义控件,这通常用于构建定制化的按钮、标签或其他UI元素。...
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。本示例将深入讲解如何基于Android系统实现一个自定义的Button控件,该控件由一个ImageView和一个TextView组成,并添加了标签功能。以下我们将从...
在Android开发中,自定义控件(Custom View)是一种强大的技术,它允许开发者根据特定需求扩展或修改系统提供的默认UI组件。自定义控件能够帮助我们实现独特的界面效果,提高应用的用户体验,同时也能使代码结构更加...
本文将深入探讨如何在Android中创建和使用自定义控件,通过具体的实例来展示其实现过程。 首先,自定义控件主要有三种方式: 1. **绘制控件**:通过重写`onDraw()`方法,直接在Canvas上进行绘制,适用于需要高度...
本文将深入讲解如何进行Android自定义控件的开发,包括理解View的工作原理、创建自定义控件的几种方式以及如何为自定义控件添加属性。 首先,我们需要理解View的基本结构和工作原理。Android的视图系统采用组合模式...
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。自定义控件允许开发者根据需求扩展标准Android组件,实现独特的交互效果和视觉样式。本教程将深入探讨如何在Android中创建自定义控件及其属性...
这份"Android自定义控件开发.rar"压缩包包含了一本名为《Android自定义控件开发入门与实战》的PDF教程,旨在帮助Android开发者深入理解和实践自定义控件的创建。 自定义控件在Android开发中的价值主要体现在以下几...
接下来,为了使自定义控件具有可配置性,我们可以定义属性并使用`AttributeSet`在XML布局中设置它们。这涉及到创建一个资源文件(如` attrs.xml`),定义自定义属性,然后在自定义控件中通过`TypedArray`读取这些...
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。本文将详细讲解如何创建一个自定义的标题导航控件,分为五个关键步骤。 ### 1. 自定义控件属性的定义 首先,我们需要定义自定义控件的属性。这...
5. 在自定义控件中读取属性:在`ToggleView`构造函数或`on.AttributeSet`方法中,使用`obtainStyledAttributes()`方法获取这些属性值。这使得在布局文件中可以方便地设置这些属性。 6. 使用自定义控件:在布局XML...
本资源提供了一个完整的Android自定义控件工程,包含了源码,方便开发者直接导入并使用。 在Android中创建自定义控件主要包括以下步骤: 1. **创建新的View类**:首先,我们需要继承自Android内置的`View`类或者`...
在Android开发中,自定义控件是提升应用界面独特性和用户体验的重要手段。本文将深入探讨如何在Android中实现自定义控件,特别是针对"TestImgTextButton"这个自定义按钮的源码分析。 首先,我们要了解自定义控件的...
4. 在布局XML文件中使用自定义控件,通过全限定类名引用。 例如,我们有一个自定义控件名为MyCustomView,它可能包含以下代码: ```java public class MyCustomView extends View { public MyCustomView(Context ...
同时,通过创建`AttributeSet`,可以在XML布局文件中为自定义控件定义属性,增强可配置性。 6. **性能优化**:自定义控件时,应关注性能,避免在`onDraw()`中执行耗时操作。使用`BitmapShader`、`NinePatch`等技术...
本篇文章将详细讲解如何在Android中创建一个具有图片斜切功能的自定义控件,该控件是基于ImageView进行扩展的,支持加载本地或网络图片,并可以根据实际需求进行定制化的图片切割。 首先,我们创建一个新的类,继承...