1,实现逻辑:
组合控件:
【1】创建SettingItemView继承RelativeLayout 或者 LinearLayout 或者ViewGroup
【2】构造方法中this 传递方法。减少代码重复使用
【3】创建itme布局,添加子view的布局
【4】在要使用控件的布局文件中使用控件。
自定义属性:
【1】在values文件夹里 创建attrs.xml 文件
【2】按照规定语法 添加属性,参考sdk 中Textview中的属性,添加命名空间
【3】获取需要设置值的控件(findviewbyid)
【4】 在构造方法里取出需要设置的属性的值进行赋值
3,实现代码:
组合控件:
【1】创建想组合的控件布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="8dp"
android:paddingTop="8dp" >
<TextView
android:id="@+id/tv_siv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000"
android:textSize="17sp" />
<ImageView
android:id="@+id/iv_siv_toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:src="@drawable/on" />
</RelativeLayout>
【2】继承RelativeLayout重写构造方法this传递,initView中添加布局显示
package view;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Build;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextVi