SeekBar的简单使用

SeekBar的简单使用

##XML:

<SeekBar
        android:id="@+id/XXXXXXr"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
属性设置:

android:maxHeight="1dip"//进度条的高度
android:progressDrawable="@drawable/xxxx"//自定义进度条背景
android:thumb="@drawable/xxxx"//自定义拖动Button
android:max="100"//最大进度值
android:progress="50"//当前进度值

##Java:

setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
	@Override
	public void onStopTrackingTouch(SeekBar seekBar) {

	}

	@Override
	public void onStartTrackingTouch(SeekBar seekBar) {

	}

	@Override
	public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
		//fromTouch:进度改变是否是通过用户Touch
		//progress:设置的值
	}
});
注意,在代码中使用setMax,setProgress方法,会回调onProgressChanged,可以根据业务需求,判断fromTouch来获取是否是用户调节。


##简单样式:

android:thumb,拖动条Button,在res/drawable下定义seekbar_thumb.xml文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">        
        
    <!-- 按下状态--> 
    <item   
        android:state_focused="true"   
        android:state_pressed="true"   
        android:drawable="@drawable/xxxx" />        
    <!-- 普通无焦点状态 -拖动按钮--> 
    <item   
        android:state_focused="false"   
        android:state_pressed="false" 
        android:drawable="@drawable/xxx" />              
    <!-- 有焦点状态--> 
    <item   
        android:state_focused="true"   
        android:state_pressed="false"             
        android:drawable="@drawable/xxxx" />         
    <!-- 有焦点 --> 
    <item   
        android:state_focused="true"             
        android:drawable="@drawable/xxxx"/>
</selector>
如果不需要按键背景selector,可以直接 android:thumb=“@drawable/xxx”设置图片

android:progressDrawable,拖动条背景样式,在res/drawable下定义seekbar_define_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/"/>
    <!-- 拖动时显示 -->
    <item
        android:id="@android:id/progress"
        android:drawable="@drawable/"/><pre name="code" class="html">    
     <!-- 第二个进度显示 -->
    <item android:id="@android:id/secondaryProgress" android:drawable="@drawable/"/>
</layer-list>

 

##颜色样式:

<?xml version="1.0" encoding="UTF-8"?>    
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">    
   
   <item android:id="@android:id/background">    
      <shape>     
         <gradient   
             android:startColor="#ffffffff" 
             android:centerColor="#ff000000"    
             android:endColor="#ff808A87"   
             android:centerY="0.45"    
             android:angle="270"/>    
      </shape>    
   </item>    
       
   <item android:id="@android:id/progress">    
       <clip>
          <shape>    
             
              <gradient   
                  android:startColor="#ffffffff" 
                  android:centerColor="#ffFFFF00"    
                  android:endColor="#ffAABD00"   
                  android:centerY="0.45"    
                  android:angle="270"/>    
          </shape>    
       </clip>
   </item>    
 </layer-list>
颜色配置,如果背景单一,可以startColor,centerColor,endColor颜色统一

自定义样式后,拖动球在两端如果显示不完全,可以设置paddingLeft和paddingRight


##配合selector:


SeekBar属性android:progressDrawable="@drawable/selector_seekbar"

selector文件:selector_seekbar.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- seekbar 未激活-->
    <item android:drawable="@drawable/xxxxx_fales" android:state_enabled="false"/>
    <!-- seekbar 已激活-->
    <item android:drawable="@drawable/xxxxx_true" android:state_enabled="true"/>
</selector>
 

 item内对应的@drawable是layer-list xml文件,在layer-list.xml 内可以自行设置对应颜色,比如激活时seekbar的背景、进度条颜色等。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值