Android控件之RatingBar自定義星級(jí)評(píng)分樣式
一、RatingBar簡(jiǎn)單介紹
RatingBar是基于SeekBar(拖動(dòng)條)和ProgressBar(狀態(tài)條)的擴(kuò)展,用星形來(lái)顯示等級(jí)評(píng)定,在使用默認(rèn)RatingBar時(shí),用戶可以通過(guò)觸摸/拖動(dòng)/按鍵(比如遙控器)來(lái)設(shè)置評(píng)分, RatingBar自帶有兩種模式 ,一個(gè)小風(fēng)格 ratingBarStyleSmall,大風(fēng)格為ratingBarStyleIndicator,大的只適合做指示,不適用與用戶交互。
效果圖展示:
二、實(shí)例
1.布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:paddingLeft="10dip" android:layout_width="match_parent" android:layout_height="match_parent"> <RatingBar android:id="@+id/ratingbar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="3" android:rating="2.5" /> <RatingBar android:id="@+id/ratingbar2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="5" android:rating="2.25" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dip"> <TextView android:id="@+id/rating" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RatingBar android:id="@+id/small_ratingbar" style="?android:attr/ratingBarStyleSmall" android:layout_marginLeft="5dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" /> </LinearLayout> <RatingBar android:id="@+id/indicator_ratingbar" style="?android:attr/ratingBarStyleIndicator" android:layout_marginLeft="5dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" /> </LinearLayout>
2.Java代碼
package wjq.WidgetDemo; import android.app.Activity; import android.os.Bundle; import android.widget.RatingBar; import android.widget.TextView; import android.widget.RatingBar.OnRatingBarChangeListener; public class RatingBarDemo extends Activity implements OnRatingBarChangeListener { private RatingBar mSmallRatingBar; private RatingBar mIndicatorRatingBar; private TextView mRatingText; /* * (non-Javadoc) * * @see android.app.Activity#onCreate(android.os.Bundle) */ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.ratingbarpage); mRatingText = (TextView) findViewById(R.id.rating); // We copy the most recently changed rating on to these indicator-only // rating bars mIndicatorRatingBar = (RatingBar) findViewById(R.id.indicator_ratingbar); mSmallRatingBar = (RatingBar) findViewById(R.id.small_ratingbar); // The different rating bars in the layout. Assign the listener to us. ((RatingBar)findViewById(R.id.ratingbar1)).setOnRatingBarChangeListener(this); ((RatingBar)findViewById(R.id.ratingbar2)).setOnRatingBarChangeListener(this); } @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { final int numStars = ratingBar.getNumStars(); mRatingText.setText( " 受歡迎度" + rating + "/" + numStars); // Since this rating bar is updated to reflect any of the other rating // bars, we should update it to the current values. if (mIndicatorRatingBar.getNumStars() != numStars) { mIndicatorRatingBar.setNumStars(numStars); mSmallRatingBar.setNumStars(numStars); } if (mIndicatorRatingBar.getRating() != rating) { mIndicatorRatingBar.setRating(rating); mSmallRatingBar.setRating(rating); } final float ratingBarStepSize = ratingBar.getStepSize(); if (mIndicatorRatingBar.getStepSize() != ratingBarStepSize) { mIndicatorRatingBar.setStepSize(ratingBarStepSize); mSmallRatingBar.setStepSize(ratingBarStepSize); } } }
關(guān)于Android控件之RatingBar自定義星級(jí)評(píng)分樣式就給大家介紹這里,希望對(duì)大家有所幫助,本文寫的不好還請(qǐng)各位大俠多多指教!
相關(guān)文章
Android實(shí)現(xiàn)濾鏡效果ColorMatrix
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)濾鏡效果ColorMatrix,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05Android自定義ScrollView使用自定義監(jiān)聽
這篇文章主要介紹了Android自定義ScrollView使用自定義監(jiān)聽 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Android自定義ViewFlipper實(shí)現(xiàn)滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Android自定義ViewFlipper實(shí)現(xiàn)滾動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08Android 自定義通用的loadingview實(shí)現(xiàn)代碼
本篇文章主要介紹了Android 自定義通用的loadingview實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01Android ApplicationContext接口深入分析
ApplicationContext是Spring應(yīng)用程序中的中央接口,由于繼承了多個(gè)組件,使得ApplicationContext擁有了許多Spring的核心功能,如獲取bean組件,注冊(cè)監(jiān)聽事件,加載資源文件等2022-11-11flutter 輸入框組件TextField的實(shí)現(xiàn)代碼
這篇文章主要介紹了flutter 輸入框組件TextField的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Android應(yīng)用程序的編譯流程及使用Ant編譯項(xiàng)目的攻略
這篇文章主要介紹了Android應(yīng)用程序的編譯流程及使用Ant編譯項(xiàng)目的攻略,Ant是集編譯測(cè)試部署于一體的Java自動(dòng)化工具,要的朋友可以參考下2016-04-04Android實(shí)現(xiàn)簡(jiǎn)單卡片布局
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)卡片布局的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10