特色:用戶可以來回拖拽。java
適用於: 經常使用在播放器上面,當前進度表明播放進度;次要進度表示緩衝進度。android
下面這是一個 最大進度100,當前進度30,次要進度50的SeekBar:佈局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <SeekBar android:id="@+id/seekBar_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:max="100" android:progress="30" android:secondaryProgress="50"/> </RelativeLayout>
接口:OnSeekBarChangeListenercode
方法:xml
參數: seekBar 觸發監聽器的SeekBar對象 progress SeekBar的當前進度 fromUser 進度的變化是否由用戶拖拽改變的;對象
例子: 打印當前進度與進度是否由用戶改變:接口
SeekBar監聽器實現圖片
class SeekBarListener implements OnSeekBarChangeListener { public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { System.out.println("當前進度爲" + progress * 100 / seekBar.getMax() + "%,進度是否由用戶改變:" + fromUser); } public void onStartTrackingTouch(SeekBar arg0) { } public void onStopTrackingTouch(SeekBar arg0) { } }
手動拖拽時,fromUser爲true. 如今咱們再來看看fromUser爲false的狀況,好比使用按鈕來改變進度:utf-8
class ButtonListener implements OnClickListener { public void onClick(View v) { seekBar.incrementProgressBy(10); } }
監聽器還有兩個方法:rem
onStartTrackingTouch(SeekBar seekbar) 開始拖拽的一瞬間所觸發的方法
onStopTrackingTouch(SeekBar seekbar) 鬆開拖拽的一瞬間所觸發的方法
監聽器的實現:
class SeekBarListener implements OnSeekBarChangeListener { public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { } public void onStartTrackingTouch(SeekBar seekBar) { System.out.println("開始拖拽" + " , 進度爲: " + seekBar.getProgress() * 100 / seekBar.getMax() + "%."); } public void onStopTrackingTouch(SeekBar seekBar) { System.out.println("中止拖拽" + " , 進度爲: " + seekBar.getProgress() * 100 / seekBar.getMax() + "%."); } }
這是RatingBar,經常使用做評分:
主要屬性
PS:我在佈局文件中使用android:progress設置默認進度無效,只有在java中設置纔有效。
RatingBar.setProgress(int progress);
setpSize星星的步伐大小
通常取值在1.0之內。
取1的話,那麼RatingBar只會一顆星星地增長或減小
若是爲0.5的話,那麼就會半個星星地增長或減小;
==============================
爲0.2的話,那麼就會5分之1個星星地增長或減小。
接口:OnRatingBarChangeListener
方法:onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) 進度改變的時候被觸發
參數:
監聽器的實現:
class RatingBarListener implements OnRatingBarChangeListener { public void onRatingChanged(RatingBar view, float rating, boolean fromUser) { System.out.println("rating: " + rating+ " , 進度是否由用戶改變:" + fromUser); } }