如何在Android中使用标准视图对象的属性制作自定义视图?

时间:2015-04-02 20:19:35

标签: android view android-custom-view

我想在android中创建一个具有以下属性的视图:

  1. 在视图上编辑文本,如EditText View。

  2. 拖动并更改视图的长度。

  3. 无论视图的长度如何,文字都必须位于同一位置。

  4. enter image description here

    当然,自定义视图类应继承一些标准类并覆盖某些功能;然后在Activity中使用相同的类。

    我并不担心XML功能,因为我会以编程方式设置宽度,高度,重力和颜色。

    有人可以告诉我如何创建这样的视图。

    要继承哪些类以及要覆盖哪些函数,以实现此目的?

1 个答案:

答案 0 :(得分:1)

要创建自己的视图,首先必须覆盖View(或视图本身)的某些子类。由于您希望视图具有可编辑的文本,我建议android.widget.EditText。这将为您节省大量工作,因为您不需要自己实施文本编辑。在每个自定义视图中,您需要覆盖框架调用的onDraw()方法以实际绘制视图。您还需要对布局事件做出反应,即方向更改或视图大小调整。您可以通过覆盖onSizeChanged()onMeasure()来实现此目的。要对触摸事件做出反应,您可以覆盖onTouch(TouchEvent e)。这些只是最重要的部分,有关详细信息,请参阅vogella.com上的官方培训课程creating custom viewsthis tutorial