Android開發總結筆記 RatingBar(評分條) 1-1-12
阿新 • • 發佈:2019-01-09
RatingBar(API)用星星的數量來進行評分顯示。是個比較簡單的元件。下面來看一看他的一些屬性
- android:isIndicator 設定Rating是否為指示器,意思是使用者不可改變RatingBar的值
- android:numStarts 設定RatingBar顯示的星星的數量,整數型
- android:rating 設定預設的評分,浮點型
- android:stepSize 設定每一步的評分是多大,浮點型
<LinearLayoutxmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:orientation="vertical">
<RatingBar
style="@android:style/Widget.Holo.RatingBar.Small"
android:layout_width="wrap_content"
android:layout_height ="wrap_content"
android:numStars="5"/>
<RatingBar
style="@android:style/Widget.Holo.RatingBar.Indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"/>
<RatingBar
style="@android:style/Widget.Holo.RatingBar"
android:layout_width="wrap_content"
android:layout_height ="wrap_content"
android:numStars="5"/>
</LinearLayout>
注意!RatingBar的width不能設定成match_parent,否則android:numStarts屬性會失效。 2、給RatingBar新增觸發事件
mRbTest =(RatingBar) findViewById(R.id.ratingBar);
mRbTest.setOnRatingBarChangeListener(newRatingBar.OnRatingBarChangeListener(){
@Override
publicvoid onRatingChanged(RatingBar ratingBar,float rating,boolean fromUser){
Toast.makeText(MainActivity.this, rating +"",Toast.LENGTH_LONG).show();
}
});
3、自定義RatingBar樣式 ratingbar.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-listxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:id="@android:id/background"android:drawable="@drawable/ic_rating_bar_off"></item>
<itemandroid:id="@android:id/secondaryProgress"android:drawable="@drawable/ic_rating_bar_off"></item>
<itemandroid:id="@android:id/progress"android:drawable="@drawable/ic_rating_bar_on"></item>
</layer-list>
customRatingBar.xml
<stylename="customRatingBar"parent="@android:style/Widget.RatingBar">
<itemname="android:progressDrawable">@drawable/ratingbar</item>
<itemname="android:minHeight">24dp</item>
<itemname="android:minWidth">24dp</item>
</style>
<RatingBar
android:id="@+id/ratingBar"
style="@style/customRatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"/>