Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android的SeekBar,RatingBar控件

Android的SeekBar,RatingBar控件

編輯:Android開發實例

不知道大家有沒有遇到過,在聽一首歌時,我們可以隨意改變歌曲的進度,在聽完歌後可以對這首歌進行評分,在開發中,要實現這兩個功能,就要用到兩個控件,分別是SeekBar和RatingBar。下面我將這兩個控件簡單的用法進行詳細說明。

首先先看下運行效果:

下來我們看看布局文件的設計:

main.xml:

 1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:orientation="vertical"
4 android:layout_width="fill_parent"
5 android:layout_height="fill_parent"
6 >
7 <TextView
8 android:layout_width="fill_parent"
9 android:layout_height="wrap_content"
10 android:text="SeekBar"/>
11 <SeekBar
12 android:id="@+id/sb_seekbar"
13 android:layout_width="fill_parent"
14 android:layout_height="wrap_content"/>
15 <TextView
16 android:layout_width="fill_parent"
17 android:layout_height="wrap_content"
18 android:text="RatingBar"/>
19 <RatingBar
20 android:id="@+id/rb_ratingbar"
21 android:layout_width="wrap_content"
22 android:layout_height="wrap_content"
23 android:numStars="5"
24 android:stepSize="0.5"/>
25 </LinearLayout>

在布局文件中我只定義了SeekBar ,RatingBar這兩個控件。在定義RatingBar中有兩個屬性需要說明一下,android:numStars是用來設置你要顯示的星星的個數,這個根據需求自己來設置,我在這裡設置為5個,android:stepSize是來設置RatingBar每次前進多少,這裡我設置為一半:0.5個星,這個也是根據需求來設置。

下面來看java代碼的編寫,這連個控件的具體用法我在編寫代碼時做了注釋,在這裡我就不做多余的解釋了,直接將代碼附在下面,大家參考下:

SeekBarActivity:

 1 package cn.yj3g.Seekbar;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.util.Log;
6 import android.widget.RatingBar;
7 import android.widget.RatingBar.OnRatingBarChangeListener;
8 import android.widget.SeekBar;
9 import android.widget.SeekBar.OnSeekBarChangeListener;
10 /**
11 *引用 OnSeekBarChangeListener和OnRatingBarChangeListener
12 */
13 public class SeekBarActivity extends Activity implements OnSeekBarChangeListener, OnRatingBarChangeListener {
14 private SeekBar bar;
15 private RatingBar ratingBar;
16
17 @Override
18 public void onCreate(Bundle savedInstanceState) {
19 super.onCreate(savedInstanceState);
20 setContentView(R.layout.main);
21 bar = (SeekBar) findViewById(R.id.sb_seekbar);
22 ratingBar=(RatingBar) findViewById(R.id.rb_ratingbar);
23 //設置seekbar的最大值
24 bar.setMax(100);
25 //設置監聽器,監聽進度條的改變狀態
26 bar.setOnSeekBarChangeListener(this);
27 //設置監聽器,監聽ratingbar的改變狀態
28 ratingBar.setOnRatingBarChangeListener(this);
29 }
30 /**
31 * 當進度條的進度發生變化時調用該方法
32 * seekBar,當前的seekbar
33 * progress,seekbar的當前進度
34 * fromUser是否是用戶改變進度的
35 */
36 @Override
37 public void onProgressChanged(SeekBar seekBar, int progress,
38 boolean fromUser) {
39 Log.v("TAG", "onProgressChanged-->seekBar="+seekBar.getId()+"progress="+progress+"fromUser="+fromUser);
40 }
41 /**
42 * 當用戶開始滑動進度條時調用該方法
43 */
44 @Override
45 public void onStartTrackingTouch(SeekBar seekBar) {
46 Log.v("TAG", "onStartTrackingTouch start--->"+"+seekBar="+seekBar.getProgress());
47 }
48 /**
49 * 當用戶結束滑動是調用該方法
50 */
51 @Override
52 public void onStopTrackingTouch(SeekBar seekBar) {
53 Log.v("TAG", "onStopTrackingTouch end--->"+"+seekBar="+seekBar.getProgress());
54 }
55 /**
56 * 當ratingBar的進度發生變化時調用該方法
57 * ratingBar,當前的ratingBar
58 * rating代表評分
59 * fromUser是否是用戶操作的
60 */
61 @Override
62 public void onRatingChanged(RatingBar ratingBar, float rating,
63 boolean fromUser) {
64 Log.v("TAG", "onRatingChanged-->ratingBar="+ratingBar.getId()+"rating="+rating+"fromUser="+fromUser);
65 }
66 }

上面在為兩個控件設置監聽時,重寫了很多方法,這些方法都很容易理解,根據不同的需求在重寫這些方法。在這裡我只是簡單的打印了一下參數,來說明各個參數的含義。具體的實現就要根據需要來做了,這裡我就不做多余的操作了。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved