30

すでにスタイルを追加しています

<style name="myRatingBar" parent="@android:style/Widget.RatingBar">
    <item name="android:minHeight">32dp</item>
    <item name="android:maxHeight">32dp</item>
</style>

ただし、スケーリングされた星の代わりに、トリミングされた星を受け取ります。

ここに画像の説明を入力

星の大きさを変える方法はありますか?

4

11 に答える 11

21

Android は、評価バーのアイコンをスケーリングしません。を減らすminHeightと、maxHeightAndroid は常に画像に示すようにアイコンをトリミングします。それに対する回避策と唯一の解決策は、星の独自のアイコンを目的の寸法で提供し、minHeightmaxHeightをアイコンのサイズに設定することです。

于 2012-09-14T03:59:39.843 に答える
6

//試すこともできます

<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>
于 2012-09-12T09:20:57.043 に答える
5

あなたはあなたの問題を解決しました。しかし、これは他の人を助けるかもしれません。

同じ問題があります。取得したすべてのソリューションは、複数の画面サイズでは機能しません。何時間も費やした後、次の解決策で終了しました。

実行時に使用する描画可能な高さを取得し、RatingBar に設定するだけです。これがサンプルコードです。

Drawable starDrawable = getResources().getDrawable(R.drawable.YOUR_IMAGE);
int height = starDrawable.getMinimumHeight();
LayoutParams params = (LayoutParams) ratingBar.getLayoutParams();
params.height = height;
ratingBar.setLayoutParams(params);
于 2014-10-18T17:48:52.747 に答える
2

この小さなスタイルのカスタム評価バーを見てください。

Rating Bar には Custom Style を使用する必要があると思います。これが例です。

于 2012-09-12T06:57:54.913 に答える