在Android开发中,拖动条常常用于对系统某种数值的设置,例如播放视频和音量等都会用到拖动条SeekBar。SeekBar和进度条十分相似,只是拖动条可以通过滑动块的位置来标志数值,并且允许用户拖动滑动块来改变值。
1、SeekBar的常见的一些的属性

  • style=”@android:style/Widget.SeekBar” 指定seekbar的样式
  • android:max=”200” 指定seekbar的最大值为200,默认是100
  • android:progress=”75”指定seekbar的当前值为75
  • android:thumb 设置seekbar的滑动块样式
  • android:progressDrawable 设置seekbar的进度条的样式
    其中指定seekbar的当前值,我们也可以通过代码设置,如:seekBar.setProgress(75);

2、当拖动滑动块的位置的时候,为了监听SeekBar的拖动情况,我们可以为它绑定一个onSeekBarChangeListener监听器

package per.lijuan.seekbardome;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.widget.SeekBar;import android.widget.TextView;public class MainActivity extends AppCompatActivity {    private SeekBar seekBar;    private TextView textView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        seekBar = (SeekBar) findViewById(R.id.progress);        textView = (TextView) findViewById(R.id.text1);        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {            @Override            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {                // 当拖动条的滑块位置发生改变时触发该方法,在这里直接使用参数progress,即当前滑块代表的进度值                textView.setText("Value:" + Integer.toString(progress));            }            @Override            public void onStartTrackingTouch(SeekBar seekBar) {                Log.e("------------", "开始滑动!");            }            @Override            public void onStopTrackingTouch(SeekBar seekBar) {                Log.e("------------", "停止滑动!");            }        });    }}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:layout_marginTop="10dp">    <SeekBar        android:id="@+id/progress"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_toLeftOf="@+id/text1"        android:maxHeight="2dp"        android:minHeight="2dp"        android:paddingBottom="3dp"        android:paddingLeft="12dp"        android:max="200"        android:paddingRight="12dp"        android:paddingTop="3dp"        android:progressDrawable="@drawable/layer_progress"        android:thumb="@drawable/shape_circle" />    <TextView        android:id="@+id/text1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:gravity="left"        android:padding="6dp"        android:text="Value:0"        android:textColor="#16BC5C"        android:textSize="16dp" />RelativeLayout>

seekbar的滑动块样式 shape_circle.xml

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="oval">        <solid android:color="#16BC5C" />        <stroke        android:width="1dp"        android:color="#16BC5C" />        <size        android:height="20dp"        android:width="20dp" />shape>

设置seekbar的进度条样式 layer_progress.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">        <shape>            <corners android:radius="3dp" />            <solid android:color="#ECF0F1" />        shape>    item>    <item android:id="@android:id/secondaryProgress">        <clip>            <shape>                <corners android:radius="3dp" />                <solid android:color="#C6CACE" />            shape>        clip>    item>    <item android:id="@android:id/progress">        <clip>            <shape>                <corners android:radius="3dp" />                <solid android:color="#16BC5C" />            shape>        clip>    item>layer-list>

好啦,我们看看效果图呗:

3、除了自定义SeekBar的样式,我们也可以使用系统提供的SeekBar样式,例如:
(1)普通的

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

(2)DeviceDefault

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

(3)Holo

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

“`
好了,本篇文章就这样啦,存在总结不到位的地方还望指导,感谢^_^

更多相关文章

  1. Android中RecyclerView如何像iOS的UITableView那样优雅的设置内
  2. Android(安卓)滑动手势侦测方法介绍
  3. [原创] 如何在android中实现swipe的手势功能及页面拖动动画
  4. android 自定义控件学习之三 控件布局常用知识总结
  5. Android音乐播放器开发
  6. Android的DrawerLayout全屏滑动显示
  7. Android预定义样式?android:attr/attribute、?attr/attribute和?
  8. Android(安卓)滑动效果高级篇(七)—— 华丽翻页效果
  9. 改变android中button的样式

随机推荐

  1. Android判断是否有可用网络和判断WIFI是
  2. N个非常有用的Android程序片段(持续更新)
  3. Android中Bitmap,byte[],Drawable,InputSt
  4. Android关于ListView显示SD卡上的Bitmap
  5. android 使用InputFilter 对金额和长度进
  6. Android 数据查询query函数参数解析
  7. 需要完善的笔记
  8. 可动态布局的Android抽屉之完整篇
  9. android 闪屏还是会出现黑屏问题
  10. android的webview调用javascript函数并得