很多时候,Android自身提供给我们的视图可能不能满足我们的需求,这个时候我们就需要自定义视图 。
1. 自定义视图分类
- 单视图:单视图不包括子视图。单视图几乎总是用来处理定制绘制。
- 组合视图 :组合视图一般包括多个子视图。在组合视图中一般不处理绘制事件,而是对子视图进行管理,绘制的任务一般都是由子视图来完成。如自定义导航栏和自定义搜索栏等。
2. 自定义视图的实现步骤
(1) 继承已有控件
继承已有的控件,创建新控件。不仅保留父控件的特性,并且还可以引入新特性。
- 一般来说,如果想在某个控件的基础上进行拓展,一般选择该控件为父类进行自定义视图。如实现ListView的横向滑动可置顶或删除列表项。
- 如果想更加自由一下,可以选择 View 作为我们的父类,继承View 相当于我们在一张空白的画纸上作画,自己绘制内容,更加自由,所以这种方法用的最多。如完全自绘控件示例。
备注
:Android中View继承关系如下
(2) 重写使用到的相关方法。如:
- 绘图:重写
onDraw
方法实现绘图 - 用户交互:重写
onTouch
(自定义视图需实现OnTouchListener接口)、onTouchEvent
或onClick
(自定义视图需实现OnClickListener接口) 方法来实现用户交互。
网友评论