3

int値をratingBarとして表示しようとしています。最大値は5です。

これは私のXMLファイルです:

<RatingBar
            android:id="@+id/ratBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:isIndicator="false"
            android:numStars="5" />

しかし、setRating()で評価を設定すると、Androidはたくさんの星を描きます。画面が小さすぎるため、いくつあるかわかりません。

誰かが私に何が悪いのか教えてもらえますか?

4

4 に答える 4

3

あなたの問題が正確に何であるかを理解できませんでしたが、Android アプリケーションで RatingBar を使用するのは非常に簡単です。RatingBar を適切な場所に定義する必要があります。

<RatingBar
        android:id="@+id/ratingBar1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:isIndicator="true"
        android:max="5"
        android:numStars="3" />

アクティビティ内で参照を取得します。

private RatingBar rb;
...
this.rb = (RatingBar) findViewById(R.id.ratingBar1);

星を埋めるために値を設定し始めます。

this.rb.setRating(2); , this.rb.setRating((float)2.5); etc.

画面が小さすぎて 5 つ星を表示できない場合は、上記と同様に星の数を設定できます。そして、いくつかのオプションがあります。

1) 2 つの評価バーを下に 1 つ、もう 1 つを 3 つ、もう 1 つを 2 つに配置できます。数が 3 を超えると、下部の評価バーの 2 つの星を引き続き埋めることができます。

2) 可能であれば、整数の代わりに浮動小数点値を設定できます。1、1.5、2、2.5、3、3.5 などを設定できるように、少し代数を計算した後、間隔 1 ~ 5 の 3 つの星を埋めることができます。

于 2013-01-04T08:03:15.063 に答える
2

に必要なものを実現するには、独自のカスタムスタイルを定義する必要がありますRatingBar。を作成してstyles、そのスタイルをRatingBarビューに適用してみてください。

このような:

<?xml version="1.0" encoding="utf-8"?>
  <resources>
    <style name="foodRatingBar" parent="@android:style/Widget.RatingBar">
    <item name="android:progressDrawable">@drawable/food_ratingbar_full</item>
    <item name="android:minHeight">48dip</item>
    <item name="android:maxHeight">48dip</item>
  </style> 
 </resources> 
 <RatingBar   android:id="@+id/my_rating_bar"
        ...
        style="@style/foodRatingBar" />

詳細については、こちらをご覧ください。

于 2012-12-29T08:30:23.470 に答える
2

これも試すことができます

<RatingBar
    android:id="@+id/ratingBar"
    style="?android:attr/ratingBarStyleIndicator"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/artist"
    android:layout_below="@+id/artist"
    android:numStars="5"
    android:rating="2.0"
    android:stepSize="1.0" />
于 2013-01-02T10:37:16.450 に答える
0

これは、評価バーのスタイルで設定したドローアブルの背景、二次進行状況、および進行状況の png のサイズが異なる場合に発生します。

次のようなものに変更します

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background"
        android:drawable="@android:color/transparent" />
    <item android:id="@android:id/secondaryProgress"
        android:drawable="@drawable/star_half" />
    <item android:id="@android:id/progress"
        android:drawable="@drawable/star_full" />
于 2016-04-29T14:33:22.613 に答える