2017-02-22 60 views
-2

使用的Android的RatingBar數星彩,我想收視率星星有下列顏色(所有的星星每等級相同的顏色):的RatingBar與視星

  • 一星:紅
  • 兩明星:黃
  • 三顆星:藍色
  • 四顆星:綠色
  • 五顆星:深綠色

這是我的代碼:

RatingBar rateDoctor; 

rateDoctor = (RatingBar)findViewById(R.id.rateDoctor); 

rateDoctor.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { 
    @Override 
    public void onRatingChanged(RatingBar ratingBar, float v, boolean b) { 


    } 
}); 

我的XML:

<RatingBar android:id="@+id/rateDoctor" android:layout_marginTop="15dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="5" android:stepSize="1.0" /> 
+0

請SHA重新您的XML –

+0

<的RatingBar 機器人:ID = 「@ + ID/rateDoctor」 機器人:layout_marginTop = 「15dp」 機器人:layout_width = 「WRAP_CONTENT」 機器人:layout_height = 「WRAP_CONTENT」 機器人:numStars = 「5」 android:stepSize =「1.0」 /> –

+0

我重新編寫了您的問題,編輯了標題並添加了您的評論中的XML。你應該自己編輯它並添加一個實際的問題,因爲目前沒有! –

回答

-1

參考文獻: How to create Custom Ratings bar in Android

<RatingBar 
    android:id="@+id/ratingBar2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:layout_marginTop="20dp" 
    android:progressDrawable="@drawable/custom_ratingbar_selector" 
    android:numStars="8" 
    android:stepSize="0.2" 
    android:rating="3.0" /> 
0

試試這個

if(ratingbar.getRating()<=1) 
{ 
LayerDrawable stars = (LayerDrawable) ratingBar 
       .getProgressDrawable(); 
     stars.getDrawable(2).setColorFilter(getResources().getColor(R.color.red), 
       PorterDuff.Mode.SRC_ATOP); // for filled stars 
     stars.getDrawable(1).setColorFilter(getResources().getColor(R.color.hal_selected), 
       PorterDuff.Mode.SRC_ATOP); // for half filled stars 
     stars.getDrawable(0).setColorFilter(getResources().getColor(R.color.no_selected), 
       PorterDuff.Mode.SRC_ATOP); 
}