ITEEDU

一个自定义组件的例子(A Customized Component Example)

在API Demos 中的CustomView提供了以一个自定义组件的例子,这个自定义组件在 LabelView 类中定义。

LabelView例子涉及到了自定义组件的方方面面:

  • 首先让自定义组件从View类中派生出来。
  • 编写带参数的构造函数(参数可以来源于XML文件)。这里面的一些处理都已经在View父类中完成,但是任然有些Labelview使用的自定义组件特有的新的参数需要处理。
  • 一些标准的Public函数,例如setText(), setTextSize(), setTextColor()
  • 重载onMeasure()方法来确定组件的尺寸(注意:在LabelView中是通过一个私有函数measureWidth()来实现的)
  • 重载onDraw()函数把Lable显示在提供的canvas上。

在例子中,你可以通过custom_view_1.xml看到自定义组件LabelView的用法。在XML文件中特别要注意的是android:app:两个参数的混合运用,app:参数表示应用程序中被认为是LabelView组件的个体,这些也会作为资源在R类中定义。