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 已經被使用者改過
運用setOnSeekBarChangeListener() 這個Callback去通知Progress Level 已經被使用者改過
再用onProgressChanged()將被使用者改過的
seekProgress = progress 取得變更的值
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