SeekBar 控件的使用day3.1

SeekBar 控件的使用 -- 用于播放器的进度(可拖动)
//一个 SeekBar 控件

1、在res/layout 布局 界面

代码


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

    <SeekBar
        android:id="@+id/seekbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
         />

</RelativeLayout>

------------------
2、在MainActivity 实现 功能代码

代码


public class MainActivity extends Activity implements OnSeekBarChangeListener{
//声明 控件 对象
private SeekBar seekbar;
private Timer timer = new Timer();
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  //找到 seekbar控件
  seekbar = (SeekBar) this.findViewById(R.id.seekbar);
  //设置 控件 最大值 为100
  seekbar.setMax(100);
  //设置 控件的 监听
  seekbar.setOnSeekBarChangeListener(this);
  //计时器从0开始 500毫秒 跑一次
  timer.schedule(new MyTask(), 0, 500);
 }
 
public class MyTask extends TimerTask{

  @Override
  public void run() {
   // TODO Auto-generated method stub
//获取 SeekBar 当前进度
   int progress = seekbar.getProgress();
//进度条 按3刻度走一次
   progress+=3;
   if(progress >= seekbar.getMax()){
    // 问题待解决
//正常 理解 -- 当 进度 大于等于 设置的 最大进度 就把当前进度 设置
//成0开始 但是 在LogCat 打印信息的时候
//progress = 0
    seekbar.setProgress(0);
    Log.i(tag, "progress:" + seekbar.getProgress() );
   }
//progress = 103 -- 也就是说 该线程 已在 在 if 语句 和该语句 来回 跑 why?
   seekbar.setProgress(progress);
   Log.i(tag, "progress:" + progress );
  }
  
 }
 @Override
 public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
  // TODO Auto-generated method stub
  
 }
 @Override
 public void onStartTrackingTouch(SeekBar arg0) {
  // TODO Auto-generated method stub
  
 }
 @Override
 public void onStopTrackingTouch(SeekBar arg0) {
  // TODO Auto-generated method stub
  
 }
}

你可能感兴趣的:(seekbar)