すでにスタイルを追加しています
<style name="myRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:minHeight">32dp</item>
<item name="android:maxHeight">32dp</item>
</style>
ただし、スケーリングされた星の代わりに、トリミングされた星を受け取ります。
星の大きさを変える方法はありますか?
すでにスタイルを追加しています
<style name="myRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:minHeight">32dp</item>
<item name="android:maxHeight">32dp</item>
</style>
ただし、スケーリングされた星の代わりに、トリミングされた星を受け取ります。
星の大きさを変える方法はありますか?
Android は、評価バーのアイコンをスケーリングしません。を減らすminHeight
と、maxHeight
Android は常に画像に示すようにアイコンをトリミングします。それに対する回避策と唯一の解決策は、星の独自のアイコンを目的の寸法で提供し、minHeight
とmaxHeight
をアイコンのサイズに設定することです。
//試すこともできます
<style name="myRatingBar" parent="@android:style/Widget.RatingBar.Indicator">
<style name="myRatingBar" parent="@android:style/Widget.RatingBar.Small">
参照: /android-sdk/platforms/android-10/data/res/values/styles.xml
<style name="Widget.RatingBar">
<item name="android:indeterminateOnly">false</item>
<item name="android:progressDrawable">@android:drawable/ratingbar_full</item>
<item name="android:indeterminateDrawable">@android:drawable/ratingbar_full</item>
<item name="android:minHeight">57dip</item>
<item name="android:maxHeight">57dip</item>
<item name="android:thumb">@null</item>
</style>
<style name="Widget.RatingBar.Indicator">
<item name="android:indeterminateOnly">false</item>
<item name="android:progressDrawable">@android:drawable/ratingbar</item>
<item name="android:indeterminateDrawable">@android:drawable/ratingbar</item>
<item name="android:minHeight">38dip</item>
<item name="android:maxHeight">38dip</item>
<item name="android:thumb">@null</item>
<item name="android:isIndicator">true</item>
</style>
<style name="Widget.RatingBar.Small">
<item name="android:indeterminateOnly">false</item>
<item name="android:progressDrawable">@android:drawable/ratingbar_small</item>
<item name="android:indeterminateDrawable">@android:drawable/ratingbar_small</item>
<item name="android:minHeight">14dip</item>
<item name="android:maxHeight">14dip</item>
<item name="android:thumb">@null</item>
<item name="android:isIndicator">true</item>
</style>
あなたはあなたの問題を解決しました。しかし、これは他の人を助けるかもしれません。
同じ問題があります。取得したすべてのソリューションは、複数の画面サイズでは機能しません。何時間も費やした後、次の解決策で終了しました。
実行時に使用する描画可能な高さを取得し、RatingBar に設定するだけです。これがサンプルコードです。
Drawable starDrawable = getResources().getDrawable(R.drawable.YOUR_IMAGE);
int height = starDrawable.getMinimumHeight();
LayoutParams params = (LayoutParams) ratingBar.getLayoutParams();
params.height = height;
ratingBar.setLayoutParams(params);