天天看點

控件_SeekBar與RatingBar

這兩種進度條都是ProgressBar的子類

SeekBar:是一種可以拖動的進度條,比如播放音樂的進度

1 import android.app.Activity;
 2 import android.os.Bundle;
 3 import android.widget.SeekBar;
 4 import android.widget.SeekBar.OnSeekBarChangeListener;
 5 
 6 public class MainActivity extends Activity {
 7     private SeekBar seekbar;
 8     protected void onCreate(Bundle savedInstanceState) {
 9         super.onCreate(savedInstanceState);
10         setContentView(R.layout.activity_main);
11         
12         seekbar = (SeekBar) findViewById(R.id.seekbar);
13         seekbar.setProgress(30);
14         seekbar.setSecondaryProgress(50);
15         seekbar.setOnSeekBarChangeListener(new SeekBarListener());
16     }
17     
18     class SeekBarListener implements OnSeekBarChangeListener{
19         /*
20          * seekbar 該對象指的是觸發了監聽器的SeekBar對象,就是說哪個SeekBar觸發了監聽器(因為有可能多個SeekBar綁定到這個監聽器上)
21          * progress 指的是目前SeekBar的進度
22          * fromUser 表示進度的改變是否來自于使用者,是則為true
23          * */
24         //該方法當進度條變化的時候調用
25         public void onProgressChanged(SeekBar seekbar, int progress, boolean fromUser) {
26             System.out.println("progress="+progress+",fromUser="+fromUser);
27         }
28         
29         //當使用者滑動進度條的時候調用
30         public void onStartTrackingTouch(SeekBar seekBar) {
31             System.out.println("Onstart");
32         }
33 
34         //當使用者終止滑動的時候調用
35         public void onStopTrackingTouch(SeekBar seekBar) {
36             System.out.println("Onstop");
37         }
38         
39     }
40 }      
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context=".MainActivity" >
10 
11     <SeekBar
12         android:id="@+id/seekbar"
13         android:layout_width="match_parent"
14         android:layout_height="wrap_content"
15         android:max="100"
16         />
17 
18 </RelativeLayout>      

RatingBar:星星,就是用于評價星級

1 import android.app.Activity;
 2 import android.os.Bundle;
 3 import android.view.View;
 4 import android.view.View.OnClickListener;
 5 import android.widget.Button;
 6 import android.widget.RatingBar;
 7 import android.widget.RatingBar.OnRatingBarChangeListener;
 8 
 9 public class MainActivity extends Activity {
10     private RatingBar ratingbar;
11     private Button button;
12     protected void onCreate(Bundle savedInstanceState) {
13         super.onCreate(savedInstanceState);
14         setContentView(R.layout.activity_main);
15         
16         ratingbar = (RatingBar) findViewById(R.id.ratingbar);
17         ratingbar.setOnRatingBarChangeListener(new RatingBarListener());
18         button = (Button)findViewById(R.id.button);
19         button.setOnClickListener(new ButtonListener());
20         
21         
22     }
23     
24     //該監聽器隻有onRatingChanged一個方法,第一個參數表示那個對象觸發了監聽器,第二個參數表示目前星數,第三個參數表示是否來自使用者的改變
25     class RatingBarListener implements OnRatingBarChangeListener{
26         public void onRatingChanged(RatingBar ratingbar, float rating, boolean fromUser) {
27             System.out.println("rating="+rating+",fromUser="+fromUser);
28         }
29     }
30     
31     class ButtonListener implements OnClickListener{
32         public void onClick(View v) {
33             ratingbar.setRating(ratingbar.getRating()+0.5f);
34         }
35     }
36 }      
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context=".MainActivity" >
10 
11     <RatingBar
12         android:id="@+id/ratingbar"
13         android:layout_width="wrap_content"
14         android:layout_height="wrap_content"
15         android:numStars="5"
16         android:stepSize="0.5"
17         />
18     
19     <Button 
20         android:id="@+id/button"
21         android:layout_width="wrap_content"
22         android:layout_height="wrap_content"
23         android:layout_below="@id/ratingbar"
24         android:text="button"
25         />
26 
27 </RelativeLayout>
28 <!-- 
29   android:numStars="4"     表示設定多少個星通常都是5個星
30   android:progress="3"     設定目前的星數
31   android:stepSize="0.5"   滑動的時候表示每次請進的距離,0。5就是每次半顆星,1就是一個星
32  -->      

轉載于:https://www.cnblogs.com/LO-ME/p/3585638.html