SeekBar 控件的使用day3.1

SeekBar 控件的使用 -- 用於播放器的進度(可拖動)
//一個 SeekBar 控件android

一、在res/layout 佈局 界面ide

代碼佈局


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

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

</RelativeLayout>xml

------------------
二、在MainActivity 實現 功能代碼對象

代碼get


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

  @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
  
 }
}
class

相關文章
相關標籤/搜索