一、SeekBar的用处

SeekBar是ProgressBar的扩展,是一个可以拖动的进度条,这样用户就可以通过拖动控制条来改变进度,就好像我们听音乐、看电影的前进与后退就是通过它来实现的。

二、SeekBar的使用

 如果我们想要实现对拖动的控制,就需要对该事件进行监听,Android系统提供了一个监听接口SeekBar.OnSeekBarChangeListener,要实现它的监听功能只要实现其接口即可。
在SeekBar中我们需要监听的主要有如下三个事件
数值的改变(onProgressChanged):进度发生改变时调用
开始拖动(onStartTrackingTouch):开始拖动的时候调用
停止拖动(onStopTrackingTouch):停止拖动的时候调用

了解了SeekBar的调用,我们来看下它的相关属性。
android:max ( 设置值的大小 )
android:thumb=”@drawable/” ( 显示的那个可拖动图标,如果没有设置该参数则为系统默认,如果自己需要重新定义,则将自己需要的图标存放在资源目录 /res/drawable下,然后调用即可)
android:thumbOffset (拖动图标的偏量值,可以让拖动图标超过bar的长度)
android:progress ( 设置seekbar当前进度条的默认值,范围0到max之间)
android:secondaryProgress (拖动图标随着当前的播放时间的走动而走动,同时我们也注意到了也有个缓冲看到的进度条,这个属性就是用来设置默认显示的值为多少,范围为0到max)
android:progressDrawable(用于自己定义SeekBar)

三、应用实例

布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">


<SeekBar
android:id="@+id/seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="30"
/>

<TextView
android:id="@+id/tvdata"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>

<TextView
android:id="@+id/tvstate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>

</LinearLayout>

MainActivity:

package com.example.myseekbar;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity implements OnSeekBarChangeListener{
private SeekBar mseekbar;
private TextView mtvdata;
private TextView mtvstate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mseekbar=(SeekBar) findViewById(R.id.seekbar);
mtvdata=(TextView) findViewById(R.id.tvdata);
mtvstate=(TextView) findViewById(R.id.tvstate);
//监听器
mseekbar.setOnSeekBarChangeListener(this);
}
//开始创建时调用
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
mtvstate.setText("开始拖动");
mtvdata.setText("当前进度数值是:"+progress);

}

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

}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
mtvstate.setText("停止拖动");
}

}

更多相关文章

  1. Android 可拖动进度条:SeekBar之自定义进度条
  2. android Editview中加小图标或者文字实现
  3. android 百度地图路线规划去掉节点图标
  4. 在Android主屏幕上删除启动器图标(就像Google Play一样)
  5. Android实现桌面图标通知数量角标
  6. Android自定义View-----上下拖动布局--SlideContentLayout
  7. Android从零开搞系列:自定义View(15)仿天天美剧拖动卡片的效果(下)
  8. android MPChart图标使用详解
  9. 拖动层的javasvript代码 十行代码即可写出兼容版拖动层

随机推荐

  1. Java图形化界面实例:
  2. jtable表头渲染器
  3. 无法从其他用户的crontab作业执行java程
  4. Visual Studio 2012本身都是已经支持Jque
  5. Web分页实现及实例演示(一)——subList()
  6. 程序主菜单之javascript完全模拟
  7. 再论javaIO之拷贝MP3(read方法返回int的原
  8. Java的Grizzly为缓冲区占用了大量内存?
  9. Kotlin:相当于KClass的getClass()。
  10. 常用设计模式学习