Android學習筆記之RatingBar

來源:互聯網
上載者:User

<1>簡介

RatingBar為評分條控制項,預設效果為若干個綠色的星星,如果想將其換成其他自訂圖片就要自訂它的style。

RatingBar是SeekBar 和 ProgressBar 的一種擴充,用星星表示等級。

當RatingBar使用預設的大小,使用者可以點擊/拉拽或使用方向鍵來設定等級。當RatingBar使用預設的大小。

它有兩種樣式(小風格用ratingBarStyleSmall,大風格用ratingBarStyleIndicator),其中大的只適合指示,不適合於使用者互動(使用者無法改變)。

    當使用可以支援使用者互動的RatingBar時,無論將控制項(widgets)放在它的左邊還是右邊都是不合適的。

只有當布局的寬被設定為wrap content時,設定的星星數量(通過函數setNumStars(int)或者在XML的布局檔案中定義)將顯示出來(如果設定為另一種布局寬的話,後果無法預知)。

次級進度一般不應該被修改,因為他僅僅是被當作星型部分內部的填充背景。

<2>屬性

 

屬性名稱

描述

android:isIndicator

RatingBar是否是一個指標(使用者無法變更)

android:numStars

顯示的星型數量,必須是一個整形值,像“100”。

android:rating

預設的評分,必須是浮點類型,像“1.2”。

android:stepSize

評分的步長,必須是浮點類型,像“1.2”。

 

<3>方法:

public   int      getNumStars()

返回顯示星星總共的的數目。

 

public     float      getRating()

擷取當前等級(滿星星的數目)。

 

public    float     
getStepSize()

得到RatingBar的步長。

 

public      boolean     
isIndicator()

返回這RatingBar是否只是一個指標(只是起指示作用,使用者無法進行互動)。

 

 

public    synchronized         void     
setMax(int max)

設定這個進度條的範圍為0……max

 

public     void     
setNumStars(int numStars)

設定星星的數目。

 

public      void     
setRating(float rating)

設定等級(星星的填充數目)。

 

public         void     
setStepSize(float stepSize)

設定RatingBar的步長。

 

<4>範例

 

package xiaosi.ratingbar;import android.app.Activity;import android.os.Bundle;import android.widget.RatingBar;public class RatingBarActivity extends Activity {    /** Called when the activity is first created. */private RatingBar ratingbar = null;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        ratingbar = (RatingBar)findViewById(R.id.ratingbar);        ratingbar.setOnRatingBarChangeListener(new RatingBarListener());    }        private class RatingBarListener implements RatingBar.OnRatingBarChangeListener{public void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser) {System.out.println("等級:" + rating);System.out.println("星星:" + ratingBar.getNumStars());}    }}

 

main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="第一種風格(可互動)" />    <RatingBar         android:id="@+id/ratingbar"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:numStars="5"        android:stepSize="1"/>     <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="第二種風格(ratingBarStyleSmall)" />    <RatingBar         android:id="@+id/ratingbar2"        style="?android:attr/ratingBarStyleSmall"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:numStars="5"        android:stepSize="1"/>        <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="第三種風格(ratingBarStyleIndicator)" />    <RatingBar         android:id="@+id/ratingbar3"        style="?android:attr/ratingBarStyleIndicator"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:numStars="5"        android:stepSize="1"/></LinearLayout>

 

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.