android学习SeekBar的使用

  

SeekBar介绍听歌的时候,我们常常想快进或者快退到某一时间段,听歌的时候我们控制音量大小听歌,SeekBar可以通过滑块的位置来标示数值,而且拖动条允许用户拖动滑块来改变进度条的大小

SeekBar的主要属性和方法(1)setMax --- 设置SeekBar的最大数值(2)setProgress --- 设置SeekBar的当前数值(3)setSecondProgress---设置SeekBar的第二数值

即当前拖动条的推荐位置SeekBar的事件由于拖动条可以诶用户控制。所以需要对其事件监听,这就需要实现SeekBar.OnSeekBarChangeListner接口,此接口共需监听三个事件分别是:数值改变----onProgressChanged开始拖动----onStartTrackingTouch停止拖动----onStopTrackingTouch

1,布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <SeekBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/seekBar"
        android:max="100"
        android:progress="50"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/textView" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/textView2" />
</LinearLayout>

  2,MainActivity

public class MainActivity extends Activity implements SeekBar.OnSeekBarChangeListener{

    private SeekBar seekBar;
    private TextView tv1;
    private TextView tv2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        seekBar = (SeekBar)findViewById(R.id.seekBar);
        seekBar.setOnSeekBarChangeListener(this);
        tv1 = (TextView)findViewById(R.id.textView);
        tv2 = (TextView)findViewById(R.id.textView2);

    }
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        tv2.setText(progress+"");
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        tv1.setText("开始拖动");
    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        tv1.setText("停止拖动");
    }
}
自定义SeekBar的进度条改变进度条的样式android:ProgressDrawable = “@drawable/seekBar_img”改变滑块的样式android:thumb = @drawable/thumb  3,改变滑块的样式  和ProgressBar 一样,我们需要进入SeekBar 的样式文件看一看
 <style name="Widget.SeekBar">
        <item name="android:indeterminateOnly">false</item>
        <item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
        <item name="android:indeterminateDrawable">@android:drawable/progress_horizontal</item>
        <item name="android:minHeight">20dip</item>
        <item name="android:maxHeight">20dip</item>
        <item name="android:thumb">@android:drawable/seek_thumb</item>
        <item name="android:thumbOffset">8dip</item>
        <item name="android:focusable">true</item>
        <item name="android:mirrorForRtl">true</item>
    </style>

    我们可以看到他的滑块是这个样式@android:drawable/seek_thumb,继续我们可以在\data\res\drawable下找到seek_thumb.xml这个文件,他就是滑块的样式

<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>

  可以看到他是一个选择器,这样,我们想要改变滑块的样式,只需要修改这个选择器即可。

  在drawable下放置两种滑块图片

  my_thumb.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/select" android:state_pressed="true" android:state_window_focused="true"/>
    <item android:drawable="@drawable/select" android:state_focused="true" android:state_window_focused="true"/>
    <item android:drawable="@drawable/select" android:state_selected="true" android:state_window_focused="true"/>
    <item android:drawable="@drawable/normal"/>

</selector>

  更改SeekBar的thumb属性

 <SeekBar
        android:thumb="@drawable/my_thumb"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/seekBar"
        android:max="100"
        android:progress="50"/>
就可以看到我们想要的滑块效果了。
 
时间: 2024-10-15 23:04:42

android学习SeekBar的使用的相关文章

android学习---SeekBar和RatingBar

SeekBar 拖动条:拖动条和滚动条类似,当是拖动条可以拖动滑块改变进度 RatingBar 星级评分条:星级评分条与拖动条相似 SeekBar特有的xml属性 android:thumb    指定一个Arawable对象,作为之定义滑块 RatingBar特有的xml属性 android:isIndicator   是否允许用户改变(true为不允许修改) android:numStars   共有多少个星级 android:rating   默认的星级 android:stepSize 

Android学习笔记18:自定义Seekbar拖动条式样

Android学习笔记18:自定义Seekbar拖动条式样

Android的SeekBar和RateBar的使用-android学习之旅(三十二)

SeekBar简介 SeekBar允许用户拖动,进行调节经常用于音量调节等方面. android:thumb设置drawable对象来表示拖动的物体. setOnSeekBarChangeListener()设置SeekBar的改变. 代码示例 package peng.liu.test; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.Men

Android学习之------SeekBar(控制wav音频的声音)

使用SeekBar调节声音 SeekBar控件其实就是一个高级点的进度条,就像我们在听歌,看电影用的播放器上的进度条一样,是可以拖动的,可以改变进度的一个进度条控件! SeekBar常用属性: android:max[integer]//设置拖动条的最大值 android:progress[integer]//设置当前的进度值 android:secondaryProgress[integer]//设置第二进度,通常用做显示视频等的缓冲效果 android:thumb[drawable]//设置

《Android学习指南》文件夹

转自:http://android.yaohuiji.com/about Android学习指南的内容分类: 分类 描写叙述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先看Android的课程,这样会非常累. 1.Android学习指南基础篇 对于有Java基础的朋友,能够通过本分类60讲左右的课程,打下比較坚实的基础. 2.Android学习指南项目实训篇 对于学过"1.Android2.2学习指南基础篇"的朋友,能够通过本分类项目的联系,加深对基础

【Android学习】《Android开发视频教程》第一季笔记

视频地址: http://study.163.com/course/courseMain.htm?courseId=207001 课时5    Activity基础概念 1.Android开发技术结构图 2.Android四大组件 Activity(页面).Service(后台运行的服务).Content Provider(数据提供者,向外暴露数据的方法,数据共享).Broadcast Receiver(监听手机发生的一切事情) 课时6    文本框与按钮的使用方法(Activity初步一) 1

Android学习之仿QQ側滑功能的实现

如今项目越来越多的应用了滑动删除的功能,Android本来遵循的是长按删除,IOS定制的是滑动删除,不可否认滑动删除确实在客户体验上要好一点,所以看了非常多关于仿QQ滑动删除的样例,还是感觉代码家的Android Swipe Layout要好一点,至于为何好,以下我给大家实验一下大家就知道了 老规矩.贴上效果图.这样大家才干更近距离的了解 这是代码家的效果图,效果非常多,支持listview.gridview,当然recylerview也是支持的. 可是呢,有个问题,代码家的效果非常多.可是我们

《Android学习指南》目录

源:<Android学习指南>目录 Android学习指南的内容分类: 分类 描述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先看Android的课程,这样会很累. 1.Android学习指南基础篇 对于有Java基础的朋友,可以通过本分类60讲左右的课程,打下比较坚实的基础. 2.Android学习指南项目实训篇 对于学过“1.Android2.2学习指南基础篇”的朋友,可以通过本分类项目的联系,加深对基础知识的理解和熟练运用. 3.Android学习指南提

Android 学习笔记之SurfaceView的使用+如何实现视频播放...

学习内容: 1.掌握Surface的使用... 2.Android中如何实现视频播放... 1.SurfaceView类的使用   在Android中,一般播放音频时我们可以去使用Android提供的MediaPlayer类,但是想要播放视频仅仅依靠MediaPlayer类是远远不够的...这里还需要使用到一个SurfaceView这个组件来完成..为什么?因为像视频和SD图形等都需要迅速的更新...如果这个更新实在主线程内去完成,那么显然是不合理的,因为一个视频的播放,系统会首先确定视频的格式