Android之ExpandableListView控制項

來源:互聯網
上載者:User

 不知道大家有沒有遇到過,在聽一首歌時,我們可以隨意改變歌曲的進度,在聽完歌后可以對這首歌進行評分,在開發中,要實現這兩個功能,就要用到兩個控制項,分別是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; www.2cto.com
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 }
上面在為兩個控制項設定監聽時,重寫了很多方法,這些方法都很容易理解,根據不同的需求在重寫這些方法。在這裡我只是簡單的列印了一下參數,來說明各個參數的含義。具體的實現就要根據需要來做了,這裡我就不做多餘的操作了
 

作者:青春流水指間
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.