如果说要按类型来划分的话,自定义View的实现方式大概可以分为三种,组合控件、继承控件、以及自绘控件。那么下面我们就来依次学习一下,每种方式分别是如何自定义View的。
一、组合控件
组合控件的意思就是,我们并不需要自己去绘制视图上显示的内容,而只是用系统原生的控件就好了,但我们可以将几个系统原生的控件组合到一起,这样创建出的控件就被称为组合控件。
举个例子来说,内容分类条就是个很常见的组合控件(如下图),很多内容的顶部都会放置一个内容分类条,上面有内容对应的分类和获取更多的按钮,点击更多后就可以进入获取更多的页面。那么下面我们就来尝试去实现它。
新建一个titlebar.xml,代码如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#f8f8f8"
android:orientation="horizontal" >
<TextView
android:id="@+id/layout_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dip"
android:text="专辑"
android:textSize="18sp" />
<TextView
android:id="@+id/getMore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dip"
android:drawablePadding="10dp"
android:drawableRight="@drawable/btn_manage_more"
android:text="更多" />
</RelativeLayout>