赞
踩
网上的自定义SeekBar的文章有很多,很多都是千篇一律。当然我也是从网上学来的,但是按照网上大多数文章来做以后会遇到一些问题,还需要再次百度、再次百度才能解决。写这篇的文章的目的也是为了,让大多数人搜索到这里一次可能就足够了
从图上看,UI的要求有以下几个:
这也是一个最最基础的Seekbar自定义,不涉及修改代码,只是修改布局文件就能实现的一个效果。
<SeekBar
android:layout_width="500px" ---seekbar总宽度
android:layout_height="wrap_content" ---这里一般设置为wrap_content即可
android:thumb="@drawable/thum_circle_blue" ---滑块的自定义文件
android:progressDrawable="@drawable/layer_progress" ---进度条的自定义文件
android:maxHeight="4dp" ---通过这两个属性设置进度条的高度
android:minHeight="4dp" ---通过这两个属性设置进度条的高度
android:splitTrack="false" ---设置滑块的背景透明
android:background="@null" ---取消滑块的点击效果
/>
其实就是一个drawable,这个drawable也是完全可以用到我们常用的按钮的效果中,默认、按下、获取焦点时显示不同的文件内容
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/pic_thumb_pressed" android:state_enabled="true" android:state_pressed="true"/> --按下
<item android:drawable="@drawable/pic_thumb_pressed" android:state_selected="true"/> --选中
<item android:drawable="@drawable/pic_thumb_pressed" android:state_focused="true"/> --获取焦点
<item android:drawable="@drawable/pic_thumb_default"/> ---默认效果
</selector>
pic_thumb_default, pic_thumb_pressed 就是默认和按下是滑块的两个图片,找UI切一下图就行了
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item> ----对背景的控制,没有进度时
<shape>
<corners android:radius="2dp" /> --圆角
<solid android:color="#ffffff"/> --颜色
</shape>
</item>
<item> --- 这个目前来说不知道什么用,也可以去掉这一部分
<clip>
<shape>
<corners android:radius="2dp" />
<solid android:color="#ffffff" />
</shape>
</clip>
</item>
<item> --- 对进度条的控制
<clip>
<shape>
<corners android:radius="2dp" /> --圆角
<solid android:color="#4084ff" /> --颜色
</shape>
</clip>
</item>
</layer-list>
其实介绍到这里,自定义seekbar就完成,网上的大多说文章就到这里就结束了,他们的例子中都忽略了上面seekbar配置中的两个属性。android:splitTrack
和 android:background
这也是我写这篇文章的最主要目的。
这个属性其实是非常重要的,如果不设置这个属性的话,即使UI给你切的滑块是透明的,他也会有一个方形的阴影,只有设置android:splitTrack=false
,才会使滑块做到真正背景透明,来看一个没有设置这个属性的效果。
不设置这个属性,会在滑块的周围有一个方形的不透明区域,非常丑
这个属性其实不设置也可以,设置 android:background="@null"
,主要是为了消除滑块的点击动画,会慢慢出现一个圆形的透明阴影,这里会影响整体UI的效果,所以要把它消除掉,来看一个没有设置这个属性的效果。
不设置这个属性时,会在滑动或点击滑块时,有一个半透明的黑色阴影动画,看情况是否设置关闭吧
文章内容非常基础,希望能帮到遇到这些问题的同学.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。