您的位置:首页 > 其它

自定义组件 学习

2010-10-13 21:15 127 查看
通过对android的学习,大家都知道,谷歌提供的API Demo的一些基本组件虽然很丰富,但远远满足不了我们设计华丽界面的需求,所以这就需要我们自己来定义我们所需要的组件......还好谷歌提供一些自定义控件的一些方法.....现将本人从网上收集以及本人学习的自定义控件的使用方法列下, 供各位参考,如有不妥之处欢迎各位指教!至于源码将在后期不定期贴出.....

一般从Layout类开始,创建一个Layout类的派生类。也许在Combo box我们会选择水平方向的LinearLayout作为父类。记住,其他的Layout类是可以嵌套到里面的,因此混合组件可以是任何组件的混合。注意,正如Activity一样,你既可以使用外部XML文件来声明你的组件,也可以嵌套在代码中。

在新的混合组件的构造函数中,首先,调用所有的父类的构造函数,传入对应的参数。然后可以设置你的混合组件的其他的一些方面,在哪创建EditText组件,又在哪创建PopupList组件。注意:你同时也可以在XML文件中引入一些自己的属性和参数,这些属性和参数也可以被你的混合组件所使用。

你也可以创建时间监听器去监听新组件中View类触发的事件,例如,对List选项单击事件的监听,你必须在此时间发生后更新你EditText的值。

你可能创建自己的一些属性,带有访问和修改方法。例如,允许设置EditText初始值并且提供访问它的方法。

在Layout的派生类中,你没有必要去重载onDraw()和onMeasure()方法,因为Layout会有比较好的默认处理。但是,如果你觉得有必要你也可以重载它。

你也可能重载一些on系列函数,例如通过onKeyDown()的重载,你可以通过按某个键去选择列表中的对应的值。

总之,把Layout类作为基类有下面几个优点:

正如activity一样,你也可以通过XML文件去声明你的新组件,或者你也可以在代码中嵌套。

onDraw()函数和onMeasure()函数是没有必要重载的,两个函数已经做得很好了。

你可以很快的创建你的混合组件,并且可以像单一组件那样使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: