由于系统自带的Preference只支持CheckBoxPreference ListPreference editPreference等几种偏好选项,假如我们需要在Preference中添加SeekBar来实现一个音量控制条的功能,这时候就需要自定义一个类.
这里我们通过继承DialogPreference来实现.
首先定义一个xml布局文件来描述seekbar的布局
seek.xml:
<?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" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="111" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="222" />
</RelativeLayout>
<SeekBar
android:id="@+id/seekbar1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="333" />
</LinearLayout>
接着我们需要定义2个seekbar的属性,minValue和maxValue来分别描述进度条的最小值和最大值.
我们知道自定义控件的属性需要在attrs.xml