为什么要自定义View
android开发中自定义View的好处是显而易见的。比如说下面的这个顶部导航,它被设计出现在应用的每个界面,但每次的内容却不尽相同。我们不能在每个layout资源中都配置一组相同的View吧?如果使用<include layou="@layout/xxx"/>标签,虽然解决了布局文件的重用性,但是相关View的初始化设置还是没能够重用(集中),需要每次都采用view.findViewById(id)来初始化他们。
有了对“可重用性”的考量,我们来完成一次对自定义View的探索。
第一步,创建自定义View的布局文件
这里创建的布局文件和平日里为Activity或Fragment创建的布局文件没有区别,例如下面的xml创建了一个上面是图片,下面是文字的自定义View布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_