編輯:Android開發實例
正文
一、結構
public class RatingBar extends AbsSeekBar
java.lang.Object
android.view.View
android.widget.ProgressBar
android.widget.AbsSeekBar
android.widget.RatingBar
二、概述
RatingBar是基於SeekBar和ProgressBar的擴展,用星型來顯示等級評定。使用RatingBar的默認大小時,用戶可以觸摸/拖動或使用鍵來設置評分,它有兩種樣式(小風格用ratingBarStyleSmall,大風格用ratingBarStyleIndicator),其中大的只適合指示,不適合於用戶交互。
當使用可以支持用戶交互的RatingBar時,無論將控件(widgets)放在它的左邊還是右邊都是不合適的。
只有當布局的寬被設置為wrap content時,設置的星星數量(通過函數setNumStars(int)或者在XML的布局文件中定義)將顯示出來(如果設置為另一種布局寬的話,後果無法預知)。
次級進度一般不應該被修改,因為他僅僅是被當作星型部分內部的填充背景。
參見Form Stuff tutorial.
三、嵌套類
接口:RatingBar.OnRatingBarChangeListener
一個回調函數,當星級進度改變時修改客戶端的星級。
四、XML屬性
屬性名稱
描述
android:isIndicator
RatingBar是否是一個指示器(用戶無法進行更改)
android:numStars
顯示的星型數量,必須是一個整形值,像“100”。
android:rating
默認的評分,必須是浮點類型,像“1.2”。
android:stepSize
評分的步長,必須是浮點類型,像“1.2”。
五、公共方法
public int getNumStars ()
返回顯示的星型數量
返回值
顯示的星型數量
public RatingBar.OnRatingBarChangeListener getOnRatingBarChangeListener ()
返回值
監聽器(可能為空)監聽評分改變事件
public float getRating ()
獲取當前的評分(填充的星型的數量)
返回值
當前的評分
public float getStepSize ()
獲取評分條的步長
返回值
步長
public boolean isIndicator ()
返回值
判斷當前的評分條是否僅僅是一個指示器(注:即能否被修改)
public void setIsIndicator (boolean isIndicator)
設置當前的評分條是否僅僅是一個指示器(這樣用戶就不能進行修改操作了)
參數
isIndicator Bool值,是否是一個指示器
public synchronized void setMax (int max)
設置評分等級的范圍,從0到max
參數
max 評分條最大范圍。
public void setNumStars (int numStars)
設置顯示的星型的數量。為了能夠正常顯示它們,建議將當前widget的布局寬度設置為
wrap content
參數
numStars 星型的數量
public void setOnRatingBarChangeListener (RatingBar.OnRatingBarChangeListener listener)
設置當評分等級發生改變時回調的監聽器
參數
listener 監聽器
public void setRating (float rating)
設置分數(星型的數量)
參數
rating 設置的分數
public void setStepSize (float stepSize)
設置當前評分條的步長(step size)
參數
stepSize 評分條的步進。例如:如果想要半個星星,它的值為0.5。
六、受保護方法
protected synchronized void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
權衡 view 和 content 來決定它的寬度和高度的整齊。它被measure(int, int) 調用 並且應該被子類所覆蓋,以便提供准確高效的布局測量。
規定: 當覆蓋這個方法的時候,你必須調用 setMeasuredDimension(int, int)以便存儲精確的視圖的寬和高。如果不這樣做的話將觸發llegalStateException異常,被函數 measure(int, int)拋出。調用父類 onMeasure(int, int)是合理的。
尺寸的基本類的實現默認是背景大小,除非通過MeasureSpec允許大的尺寸。子類應該覆蓋 onMeasure(int, int) 以便提供更好的布局大小。
如果這個方法被覆蓋,子類應該負責確保標准的寬和高至少是視圖的最小寬度和高度的值(分別為getSuggestedMinimumHeight() 和 getSuggestedMinimumWidth()兩方法)。
參數
widthMeasureSpec 受主窗口支配的水平空間要求。這個需求通過 View.MeasureSpec.進行編碼。
heightMeasureSpec 受主窗口支配的垂直空間要求。這個需求通過 View.MeasureSpec.進行編碼。
七、補充
Java文件
public class AndroidRatingBar extends Activity {XML文件
<?xml version="1.0" encoding="utf-8"?>
結束
本文為"madgoat"和"wallace2010"聯合署名,原因是翻譯重了,不過兩個翻譯得都很好,這樣翻譯重的事件也將隨著管理的完善得意解決,感謝兩位的相互理解,感謝大家的支持!
轉自:http://www.cnblogs.com/over140/archive/2010/11/18/1880391.html
本文實例講述了android編程之XML文件解析方法。分享給大家供大家參考,具體如下: 在android開發中,經常用到去解析xml文件,常見的解析xml的方式有
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用
本文實例講述了Android實現仿通訊錄側邊欄滑動SiderBar效果代碼。分享給大家供大家參考,具體如下: 之前看到某些應用的側邊欄做得不錯,想想自己也弄一個出
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放