親,麻煩給個五星好評!—RatingBar

引言

上一篇的CheckBox已經讓你們愈來愈接近實戰演練了,本章咱們繼續分享乾貨給你們,今天介紹一個實用的UI控件RatingBar(星級評分條),對於使用過電商APP(某東,某寶等)的小夥伴們來講,應該不會陌生。在對商品進行評價時,常常會出現五星好評的評分樣式,這個五星評分樣式就是今天的主角RatingBarphp

簡介

RatingBar:用於評分和展現的星級評分控件。java

public class RatingBar extends AbsSeekBar java.lang.Objectandroid.view.Viewandroid.widget.ProgressBarandroid.widget.AbsSeekBarandroid.widget.RatingBar 複製代碼

由上面的繼承結構能夠看出,RatingBar是基於SeekBarProgressBar的擴展。android

基本使用

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity">

    <RatingBar android:layout_width="wrap_content" android:layout_height="wrap_content" />

</LinearLayout>
複製代碼

在項目裏直接放一個RatingBar,看下運行效果:ide

img

能夠看出,系統給咱們提供了一套默認的樣式與代碼邏輯,若是想實現咱們本身的樣式邏輯,可在此基礎上進行修改。佈局

XML經常使用屬性

android:isIndicator:是否用做指示,即用戶是否可點擊更改,默認false(可點擊)。學習

android:numStars:顯示多少個星星,必須爲整數。this

android:rating:默認評分值,必須爲浮點數。spa

android:stepSize: 評分每次增長的值,必須爲浮點數。設計

除了上面這些,系統還爲咱們提供了三種樣式,供咱們選擇:3d

img

使用示例:

img

上面介紹系統提供的三種樣式,主要是改變星星的大小,若是須要使用其餘樣式,還須要進行自定義,方式以下:

1.在drawable下編寫一個layer-list文件ratingbar_layer

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background" android:drawable="@drawable/rating_off"/>
    <item android:id="@android:id/progress" android:drawable="@drawable/rating_on"/>
</layer-list>
複製代碼

注意drawable中引用的圖片,須要根據設計圖尺寸,放在不一樣屏幕密度的drawable文件夾下,用於屏幕適配。

2.在values文件夾下styles.xml文件中添加style樣式。

<style name="my_ratingBar" parent="@android:style/Widget.RatingBar"> <item name="android:progressDrawable">@drawable/ratingbar_layer</item> <item name="android:minHeight">24dp</item> <item name="android:maxHeight">24dp</item> </style>
複製代碼

3.在xml佈局裏進行使用。

<RatingBar android:id="@+id/ratingbar" style="@style/my_ratingBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="5" android:rating="3" android:stepSize="1" />
複製代碼

img

監聽處理

不少時候,咱們還須要對星星的選擇事件進行監聽,獲取用戶選擇的星星數量,這就須要咱們在代碼中進行監聽操做。

RatingBar ratingBar = findViewById(R.id.ratingbar);
//星星變化監聽
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
	@Override
    public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
    	Toast.makeText(MainActivity.this, "rating==" + String.valueOf(rating), 			         	Toast.LENGTH_SHORT).show();
    }
});
複製代碼

img

結語

以上就是RatingBar的使用介紹,是否是so easy,趕快在項目中使用吧!也麻煩各位小夥伴們之後看完咱們的文章順手點個贊吧~ 若是小夥伴想學習更多知識或者快速學習進階,能夠關注咱們的WXGZH:下碼看花一塊兒探討~

相關文章
相關標籤/搜索