场景:图片功能模块,亮度调节功能:需要一个seekbar控件来调节屏幕的亮度,用seekbar来控制。 首先修改android原始的seekbar控件,太磕碜。
首先在 drable文件夹下新建一个 XML文件 -- pic_seekbar_slot_style.xml ,里面的内容为:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 这里显示调节槽的背景图 -->
<item android:id="@+android:id/background" android:drawable="@drawable/pic_seekbar_dn" />
<!-- 显示调节槽的进度图 和调节槽的背景图形成对比 给人一种表示当前进度值的感觉-->
<item android:id="@+android:id/progress" android:drawable="@drawable/pic_seekbar_dn" />
</layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 这里显示调节槽的背景图 -->
<item android:id="@+android:id/background" android:drawable="@drawable/pic_seekbar_dn" />
<!-- 显示调节槽的进度图 和调节槽的背景图形成对比 给人一种表示当前进度值的感觉-->
<item android:id="@+android:id/progress" android:drawable="@drawable/pic_seekbar_dn" />
</layer-list>
上面就建立了一个seekbar调节槽的背景图和进度图
再新建一个XML文件 ,pic_seekbar_thumb_style.xml,里面的内容为:
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 点击滑块进行拖动时的 按下状态 -->
<item android:state_pressed="true"
android:drawable="@drawable/pic_seekbar_thumb_dn" />
<!-- 滑块 获取 焦点状态 -->
<item android:state_focused="true"
android:drawable="@drawable/pic_seekbar_thumb_up" />
<!-- 默认状态 -->
<item android:drawable="@drawable/pic_seekbar_thumb_up" />
</selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 点击滑块进行拖动时的 按下状态 -->
<item android:state_pressed="true"
android:drawable="@drawable/pic_seekbar_thumb_dn" />
<!-- 滑块 获取 焦点状态 -->
<item android:state_focused="true"
android:drawable="@drawable/pic_seekbar_thumb_up" />
<!-- 默认状态 -->
<item android:drawable="@drawable/pic_seekbar_thumb_up" />
</selector>
上面就是建立了 调节槽上用来表示当前进度的滑块,这个滑块可以用来拖动,点击,分别用不同的图片去显示,当我们点击时就会显示上面定义的 按下状态 时定义的图片。
最后来应用上面定义的效果:
<SeekBar
android:id="@+id/picture_seekbar"
android:layout_width="320dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:max="100"
android:visibility="gone"
android:progressDrawable="@drawable/pic_seekbar_slot_style" 这里就应用上面定义的调节槽的效果
android:thumb="@drawable/pic_seekbar_thumb_style" 这里应用定义的滑块的效果
android:id="@+id/picture_seekbar"
android:layout_width="320dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:max="100"
android:visibility="gone"
android:progressDrawable="@drawable/pic_seekbar_slot_style" 这里就应用上面定义的调节槽的效果
android:thumb="@drawable/pic_seekbar_thumb_style" 这里应用定义的滑块的效果
/>
这样我们就可以自定义的seekbar 控件,看起来就比较 cool !!