2013-12-17 52 views
1

在我的代碼中,RatingBar顯示最接近的雙數。例如,如果我的值爲3.5,則顯示爲4星,如果我的值爲3.2,則顯示爲3星。它始終使它到最近的整數值。如何在Android ratingBar中顯示雙星值?

我使用的代碼:

TextView rateavg =(TextView)findViewById(R.id.textView1); 
rateavg.setText(stringrate); 
RatingBar ratingBar = (RatingBar)findViewById(R.id.ratingBar1); 
ratingBar.setEnabled(false); 
ratingBar.setMax(5); // I assume 5 is your max rating 
ratingBar.setRating(Float.parseFloat(stringrate)); 
ratingBar.setStepSize(0.5f); 
+0

嘗試設置步長0.01f –

回答

3

試試這個:

ratingBar.setEnabled(false); 
ratingBar.setMax(5); 
ratingBar.setStepSize(0.01f); 
ratingBar.setRating(Float.parseFloat(stringrate)); 
ratingBar.invalidate(); 
+0

謝謝你的作品 – user2870902

0

你的關心,你可以嘗試..

int rate = 3.8; // Get your value over here .. 

final RatingBar ratingbar = (RatingBar) rowView.findViewById(R.id.service_rate_bar); 
ratingbar.setStepSize((float) 0.25); 
ratingbar.setIsIndicator(true); 
ratingbar.setRating((int) rate); 

,並在XML文件中定義這樣的評價吧..

<RatingBar 
      android:paddingTop="5dp" 
      android:id="@+id/service_rate_bar" 
      style="@style/CustomRatingBar" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:numStars="5" 
      android:stepSize="1.0" 

      />