>

javacode

Saturday, April 9, 2016

SeekBar刻度 與 Runnable 應用

SeekBar 刻度的實現與Runnable的應用






首先先瞧瞧SeekBar的說明



Android裡Seekbar其實是ProgressBar的延伸讓設計者可以運用觸控事件(Touch Event) 可拖動的拇指左右方向(Draggable Thumb/left right arrow keys)並改變他的值

先畫畫 類別圖

稍稍瞭解後便開始創造SeekBar吧

在layout裡 宣告我們需要的SeekBar 在xml裡面我們可以直接宣告seekbar的最大值是多少或者是動態加載

xml裡加載只需要多加上android:max=”100”(值可以自由設定)

<SeekBar
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_above="@+id/seekbar_text"
  android:id="@+id/seekbar"
  />
<TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/seekbar_text"
  android:text="0"
  android:layout_below="@id/mlinear2"
  android:layout_centerHorizontal="true"
  android:textSize="15dp"/>

這個TextView用來顯示拖動刻度的值是多少

在MainActivity中

private SeekBar seekBar;
private int seekProgress;
先初始化我們所需要的物件
運用setOnSeekBarChangeListener() 這個Callback去通知Progress Level 已經被使用者改過
再用onProgressChanged()將被使用者改過的
seekProgress = progress 取得變更的值


由於最開始設定了 SeekBar的最大值為20(seekbar.setMax(20))  表示刻度為1 可以拖動到最大值20為止

progress*50 讓我的最大值的數字顯示為1000 每一刻度為50
fromUser 這boolean是判斷 是不是被使用者拖動  要做什麼 不是要做什麼完全可以由設計者掌控


在這段程式碼當中 取得了progress改變的值 並將它存到seekProgress裡面
接下來就直接運用seekProgress套用到Runnable postDelayed()裡
只要progress的值 改變 Runnable的Delayed也會跟著改變
效果圖


No comments :

Post a Comment