158

私の活動では、いくつかの評価バーがあります。しかし、このバーのサイズはとても大きいです!どうすれば小さくできますか?

編集

Gabriel Negutのおかげで、私は次のスタイルでそれを行いました。

<RatingBar
style = "?android:attr/ratingBarStyleSmall"
android:numStars = "5"
android:rating   = "4" />

現在、サイズは縮小されていますが、星の数と評価は有効になりません!!! なんで?私は7つ星を持っており、そのうち6つが選ばれています。

4

16 に答える 16

195

私が投稿した元のリンクが壊れています(リンクだけを投稿するのが最善の方法ではないのには十分な理由があります)。のRatingBarいずれかratingBarStyleSmallまたはから継承したカスタムスタイルでスタイルを設定するWidget.Material.RatingBar.Small必要があります(アプリでマテリアルデザインを使用していると仮定します)。

オプション1:

<RatingBar
    android:id="@+id/ratingBar"
    style="?android:attr/ratingBarStyleSmall"
    ... />

オプション2:

// styles.xml
<style name="customRatingBar"   
    parent="android:style/Widget.Material.RatingBar.Small">
    ... // Additional customizations
</style>

// layout.xml
<RatingBar
    android:id="@+id/ratingBar"
    style="@style/customRatingBar"
    ... />
于 2011-05-27T14:34:13.123 に答える
93

これは、醜いパディングさえせずに小さなサイズで評価バーを減らすのに多くの苦労をした後の私の解決策でした

 <RatingBar
        android:id="@+id/listitemrating"
        style="@android:attr/ratingBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleX=".5"
        android:scaleY=".5"
        android:transformPivotX="0dp"
        android:transformPivotY="0dp"
        android:isIndicator="true"
        android:max="5" />
于 2015-07-03T12:45:05.510 に答える
65

評価バーを小さいサイズで表示する場合は、このコードをコピーしてプロジェクトに貼り付けてください。

  <RatingBar
    android:id="@+id/MyRating"
    style="?android:attr/ratingBarStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/getRating"
    android:isIndicator="true"
    android:numStars="5"
    android:stepSize="0.1" />
于 2014-06-25T11:50:30.367 に答える
46

のXMLコードで設定し、それに応じてRatingBar使用scaleXおよびscaleY調整できます。「1.0」が通常のサイズになり、「。0」の場合はサイズが小さくなり、「1.0」より大きい場合はサイズが大きくなります。

<RatingBar
  android:id="@+id/ratingBar1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:scaleX="0.5"
  android:scaleY="0.5" />
于 2014-03-03T04:08:07.713 に答える
43

以下のスニペットは、ratingBarのサイズを変更するのに役立ちました

<RatingBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/ratingBar"
    style="?android:attr/ratingBarStyleIndicator"
    android:scaleX=".5"
    android:rating="3.5"
    android:scaleY=".5"
    android:transformPivotX="0dp"
    android:transformPivotY="0dp"
    android:max="5"/>

ここに画像の説明を入力してください

于 2016-12-03T20:37:14.573 に答える
12

実例

             <RatingBar
                style="@style/RatingBar"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:numStars="5"
                android:rating="3.5"
                android:stepSize="0.5" />

これをstylesxmlファイルに追加します

<style name="RatingBar"   
parent="android:style/Widget.Material.RatingBar.Small">
<item name="colorControlNormal">@color/primary_light</item>
<item name="colorControlActivated">@color/primary_dark</item>
</style>

このように、ratingBarをカスタマイズする必要はありません。

于 2016-05-18T17:05:27.807 に答える
10

ここで私の答えを確認してください。それを達成するための最良の方法。

 <style name="MyRatingBar" parent="@android:style/Widget.RatingBar">
   <item name="android:minHeight">15dp</item>
   <item name="android:maxHeight">15dp</item>
   <item name="colorControlNormal">@color/white</item>
   <item name="colorControlActivated">@color/home_add</item>
</style>

のように使用します

<RatingBar
    style="?android:attr/ratingBarStyleIndicator"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:isIndicator="false"
      android:max="5"
      android:rating="3"
      android:scaleX=".8"
      android:scaleY=".8"
      android:theme="@style/MyRatingBar" />
于 2018-04-17T11:35:21.387 に答える
6
<RatingBar
  style="?android:attr/ratingBarStyleIndicator"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
/>
于 2015-08-18T12:32:22.187 に答える
5

RatingBarタグに、これらの2行を追加します

style="@style/Widget.AppCompat.RatingBar.Small"
android:isIndicator="false"
于 2019-10-06T02:22:23.317 に答える
4

weightSumを使用してLinearlayoutで評価バーを使用している場合。評価バーにlayout_weightを割り当てないように注意してください。代わりに、相対レイアウト内に評価バーを配置し、相対レイアウトに重みを付けます。評価バーの幅をラップコンテンツにします。

<RelativeLayout
    android:layout_width="0dp"
    android:layout_weight="30"
    android:layout_gravity="center"
    android:layout_height="wrap_content">
        <RatingBar
            android:id="@+id/userRating"
            style="@style/Widget.AppCompat.RatingBar.Small"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:stepSize="1" />
</RelativeLayout>
于 2018-06-29T13:08:24.873 に答える
4

を使用Widget.AppCompat.RatingBarすると、2つのスタイルを使用できます。Indicatorそれぞれ大きいサイズとSmall小さいサイズの場合。以下の例を参照してください。

<RatingBar
    android:id="@+id/rating_star_value"
    style="@style/Widget.AppCompat.RatingBar.Small"
    ... />
于 2018-08-30T15:49:52.750 に答える
4

これは私のために働いた。
この画像を確認してください

            android:id="@+id/ratingBar"
            style="?android:attr/ratingBarStyleIndicator"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:numStars="5"
            android:scaleX=".8"
            android:scaleY=".8"
            android:stepSize="0.5"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.543"
            app:layout_constraintStart_toEndOf="@+id/title"
            app:layout_constraintTop_toTopOf="parent" />
于 2020-07-25T04:46:39.743 に答える
3
 <RatingBar     android:id="@+id/id_tv_rating_bar"
                style="@style/Widget.AppCompat.RatingBar.Small"
                android:layout_width="wrap_content"
                android:layout_height="@dimen/_20sdp"
                android:layout_marginLeft="@dimen/_80sdp"
                android:numStars="5"
                android:paddingTop="@dimen/_5sdp"
                android:rating="5" />

使用style="@style/Widget.AppCompat.RatingBar.Small"するだけで確実に機能します!

于 2020-07-05T11:02:06.957 に答える
2

デフォルトのスタイルのみが必要な場合は、次の幅/高さがあることを確認してください。そうしないと、numStarsが混乱する可能性があります。

android:layout_width="wrap_content"
android:layout_height="wrap_content"
于 2014-01-02T20:16:15.650 に答える
2

属性RatingBarを与える:

style="?android:attr/ratingBarStyleIndicator" 
于 2015-07-10T06:41:39.010 に答える
0

プログラムで評価バーを作成し、デフォルトの大きな評価バーの代わりに小さな評価バーを設定したい場合

    private LinearLayout generateRatingView(float value){
        LinearLayout linearLayoutRating = new LinearLayout(getContext());
        linearLayoutRating.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT、TableRow.LayoutParams.WRAP_CONTENT));
        linearLayoutRating.setGravity(Gravity.CENTER);
        RatingBarratingBar = new RatingBar(getContext()、null、android.R.attr.ratingBarStyleSmall);
        RatingBar.setEnabled(false);
        ratingBar.setStepSize(Float.parseFloat( "0.5"));//ハーフスターを有効にするため
        ratingBar.setNumStars(5);
        RatingBar.setRating(value);
        linearLayoutRating.addView(ratingBar);
        linearLayoutRatingを返します。
    }

于 2018-12-11T11:07:16.213 に答える