在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控件之利用selector自定义的带文字的图片按钮
  2. Android 开发之Matrix图片处理类的使用
  3. Android H5和App交互以及打开图库上传图片并显示
  4. android之图片切圆角
  5. android:background="@drawable/"图片拉伸问题
  6. Android图片资源的缩放问题
  7. Android大图片导致内存问题小结
  8. Android预定义样式?android:attr/attribute、?attr/attribute和?
  9. Android imageview图片缩放实现

随机推荐

  1. Android之Content ProviderII
  2. 复制assets下的数据库到SD卡
  3. 【转】Android的计量单位px,in,mm,pt,dp,
  4. 【Android Audio】Android Audio System
  5. android 调用腾讯微博接口
  6. Ubuntu10.04 Android 开发环境配置 SDk下
  7. Android 学习教程一 安装eclipse android
  8. Android(安卓)JNI 加载 so 文件流程 (Andr
  9. 在Eclipse添加Android兼容包(v4/v7appcom
  10. ListView.setOnItemClickListener无效