這兩種進度條都是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