web-dev-qa-db-ja.com

Ratingbarのサイズを小さくするにはどうすればよいですか?

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

編集

Gabriel Negutのおかげで、私は次のスタイルでそれをやった。

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

現在、サイズは縮小されていますが、星の数と評価は有効になりません!!!どうして?そのうちの6つが選択されている7つの星があります。

113
Hesam

私が投稿した元のリンクは現在壊れています(リンクを投稿するのが最良の方法ではない理由があります)。 RatingBarratingBarStyleSmallまたはWidget.Material.RatingBar.Smallから継承するカスタムスタイルのいずれかでスタイル設定する必要があります(アプリでMaterial Designを使用している場合)。

オプション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"
    ... />
136
Gabriel Negut

これは、ugいパディングなしで小さなサイズの評価バーを減らすのに苦労した後の私のソリューションでした

 <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" />
62

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

  <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" />
61
Pir Fahim Shah

RatingBarのXMLコードで設定できます。scaleXscaleYを使用して適宜調整します。 「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" />
39
ZeWolfe15

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

<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"/>

enter image description here

31
Naveed Ahmad

実施例

             <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" />

これをスタイルxmlファイルに追加します

<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をカスタマイズする必要はありません。

8
Hammad Tariq
<RatingBar
  style="?android:attr/ratingBarStyleIndicator"
  Android:layout_width="wrap_content"
  Android:layout_height="wrap_content"
/>
6
nafees4343

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

 <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" />
5
AMAN SINGH

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>
3
Varnith Kumar M

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

<RatingBar
    Android:id="@+id/rating_star_value"
    style="@style/Widget.AppCompat.RatingBar.Small"
    ... />
2
Ugokoli

デフォルトのスタイルのみが必要な場合は、次の幅/高さを確認してください。そうしないと、numStarsが台無しになります。

Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
2
Sean

RatingBarで属性を指定:

style="?android:attr/ratingBarStyleIndicator" 
2

プログラムで評価バーを作成し、デフォルトの大きな評価バーではなく小さな評価バーを設定する場合

 
 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); 
 RatingBar ratingBar = 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); 
 return linearLayoutRating; 
} 
 
0
Sachin Tanpure