編輯:關於Android編程
一、RatingBar簡單介紹
RatingBar是基於SeekBar(拖動條)和ProgressBar(狀態條)的擴展,用星形來顯示等級評定,在使用默認RatingBar時,用戶可以通過觸摸/拖動/按鍵(比如遙控器)來設置評分, RatingBar自帶有兩種模式 ,一個小風格 ratingBarStyleSmall,大風格為ratingBarStyleIndicator,大的只適合做指示,不適用與用戶交互。
效果圖展示:
二、實例
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" 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" 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); } } }
關於Android控件之RatingBar自定義星級評分樣式就給大家介紹這裡,希望對大家有所幫助,本文寫的不好還請各位大俠多多指教!
隨著微信微博等社會化媒體的火熱,第三方登錄迅速成為一種快捷注冊的方式,社會化分享也成為一種知識快速傳播的渠道。在移動端,幾乎大多數應用都接入了第三方登錄或者分享組件,尤其
本節引言: 上節中我們給大家接觸了Socket的一些基本概念以及使用方法,然後寫了一個小豬簡易聊天室的 Demo,相信大家對Socket有了初步的
Volley的核心結構如下所示:今天主要看Network相關:Network整體功能介紹:通過實現了Network接口的類(這裡是BasicNetwork),執行從Req
只允許EditText輸入數字或者email格式字符是非常簡單的(詳見API文檔)。 要實現只允許輸入自定的數字字符也是很容易的(詳見API文檔,set