私の活動には、いくつかの評価バーがあります。しかし、このバーのサイズはとても大きいです!どうすれば小さくできますか?
編集
Gabriel Negutのおかげで、私は次のスタイルでそれをやった。
<RatingBar
style = "?android:attr/ratingBarStyleSmall"
Android:numStars = "5"
Android:rating = "4" />
現在、サイズは縮小されていますが、星の数と評価は有効になりません!!!どうして?そのうちの6つが選択されている7つの星があります。
私が投稿した元のリンクは現在壊れています(リンクを投稿するのが最良の方法ではない理由があります)。 RatingBar
をratingBarStyleSmall
または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"
... />
これは、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" />
評価バーを小さいサイズで表示する場合は、このコードをコピーしてプロジェクトに貼り付けてください。
<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" />
RatingBar
のXMLコードで設定できます。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" />
以下のスニペットは、評価バーのサイズを変更するのに役立ちました
<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"/>
<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をカスタマイズする必要はありません。
<RatingBar
style="?android:attr/ratingBarStyleIndicator"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
/>
私の答えを確認してください こちら 。それを達成する最良の方法。
<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" />
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>
Widget.AppCompat.RatingBar
を使用すると、2つのスタイルを使用できます。 Indicator
およびSmall
は、それぞれ大きいサイズと小さいサイズです。以下の例を参照してください。
<RatingBar
Android:id="@+id/rating_star_value"
style="@style/Widget.AppCompat.RatingBar.Small"
... />
デフォルトのスタイルのみが必要な場合は、次の幅/高さを確認してください。そうしないと、numStarsが台無しになります。
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
RatingBar
で属性を指定:
style="?android:attr/ratingBarStyleIndicator"
プログラムで評価バーを作成し、デフォルトの大きな評価バーではなく小さな評価バーを設定する場合
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; }