【Code-Snippet】SeekBar

概述

SeekBar,拖动条。主要的要点是自定义的样式,拖动条的值,拖动条值改变的监听器等等。

SeekBar的重要的属性

style="@android:style/Widget.SeekBar" 指定样式

android:max="200" 最大值为200,默认是100

android:progress="100" 指定当前的值为100

android:thumb 设置滑动块的样式

android:progressDrawable 设置进度条的图片

progress值改变的监听器:

seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                textView.setText("Value:"+ Integer.toString( progress ) );
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                Log.e("------------","开始滑动!");
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                Log.e("------------","停止滑动!");
            }
        });
复制代码

系统提供的样式:

普通版的 style="@android:style/Widget.SeekBar"

Holo版 style="@android:style/Widget.Holo.SeekBar"

DeviceDefault style="@android:style/Widget.DeviceDefault.SeekBar"

Material style="@android:style/Widget.Material.SeekBar"

自定义

1)滑块的自定义

<!-- This is the thumb on the seek bar. -->  
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
   
     <item android:state_pressed="true"  
           android:state_window_focused="true"  
           android:drawable="@drawable/seek_thumb_pressed" />  
   
     <item android:state_focused="true"  
           android:state_window_focused="true"  
           android:drawable="@drawable/seek_thumb_selected" />  
   
     <item android:state_selected="true"  
          android:state_window_focused="true"  
          android:drawable="@drawable/seek_thumb_selected" />  
 
    <item android:drawable="@drawable/seek_thumb_normal" />  
</selector>  
复制代码

它定义的是seekbar的滑块样式,内容很简单,大家应该看得懂,分别对应着按下,选中,以及获得焦点时滑块的图片,这个是源码的,大家照葫芦画瓢就好了。

<?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/bg3" />  
   
     <!-- 普通无焦点状态 -->  
     <item android:state_focused="false"    android:state_pressed="false"  
         android:drawable="@drawable/bg4" />  
</selector>  
复制代码

2)进度条自定义

<style name="Widget.Material.SeekBar">
        <item name="indeterminateOnly">false</item>
        <item name="progressDrawable">@drawable/seekbar_track_material</item>
        <item name="indeterminateDrawable">@drawable/seekbar_track_material</item>
        <item name="thumb">@drawable/seekbar_thumb_material_anim</item>
        <item name="splitTrack">true</item>
        <item name="useDisabledAlpha">false</item>
        <item name="focusable">true</item>
        <item name="paddingStart">16dip</item>
        <item name="paddingEnd">16dip</item>
        <item name="mirrorForRtl">true</item>
        <item name="background">@drawable/control_background_32dp_material</item>
    </style>
复制代码

当然,thumb可以直接使用属性标签:android:thumb去指定, 这里的style是自定义了很多东西,上面的这个是系统的 Material 效果的风格xml,有

  • progressDrawable 效果,就是进度条的样式
  • indeterminateDrawable 设置绘制不显示进度的进度条的Drawable对象
  • indeterminateOnly 是否不显示进度条,true,不显示
  • thumb 滑动块样式
  • background 背景

转载于:https://juejin.im/post/5c91e0a06fb9a071061ef840

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值