我制作了自己的评级栏。从24pxx24px到64x64px有4种尺寸的鲜花图像(xdpi,hdpi等)。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+android:id/background"
android:drawable="@drawable/ic_rating_flowers_empty" />
<item android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/ic_rating_flowers_empty" />
<item android:id="@+android:id/progress"
android:drawable="@drawable/ic_rating_flowers" />
</layer-list>
rating_flowers.xml in drawable floder
<style name="flowersRating" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/rating_flowers</item>
<item name="android:minHeight">24dip</item>
<item name="android:maxHeight">64dip</item>
</style>
style.xml中的
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip" >
<TextView
android:text="@string/mood_headache" />
<RatingBar
android:id="@+id/moodHeadacheRating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="3"
android:stepSize="1.0"
android:rating="0"
style="@style/flowersRating" />
</TableRow>
和活动
我所看到的
来自drawable-ldpi的图片
答案 0 :(得分:3)
尝试删除
android:padding="5dip"
来自TableRow的,因为它会在花卉绘制的正上方产生填充。
答案 1 :(得分:1)
在评级栏的XML中更改
android:layout_height="wrap_content"
到
android:layout_height="[some number]sp".
这将解决截止图像的问题。
DisplayMetrics可用于获取有关显示的一般信息,然后找出要使用的相应单位,但使用an android unit converter要简单得多。
答案 2 :(得分:1)
将样式用作?android:attr / ratingBarStyleSmall
<RatingBar
android:id="@+id/rating"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:progressDrawable="@drawable/ratingbar_selector"
android:rating="2.0"
android:stepSize="1.0" />
并且自定义评级栏选择器将是: ratingbar_selector.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/background"
android:drawable="@drawable/ic_unselected_star" />
<item
android:id="@android:id/secondaryProgress"
android:drawable="@drawable/ic_unselected_star" />
<item
android:id="@android:id/progress"
android:drawable="@drawable/ic_selected_star" />
</layer-list>
IMP注意:如果自定义评级栏图标大小类似于48x48,50x50等,则将图标放入xxhdpi文件夹(因为我使用较小(36x36)评级图标,这就是创建相同的问题)。 然后我使用了尺寸为48x48的评级栏图标。
答案 3 :(得分:0)
我在这里遇到了完全相同的问题。对我来说,问题不在于代码,而在于图像本身。在我的情况下,解决方案是将照片手动调整为我想要的尺寸(IE 24x24或64x64)并将它们放入正确的文件夹中。
我尝试了很多东西,但它似乎是
<item name="android:minHeight">24dip</item>
<item name="android:maxHeight">64dip</item>
对我来说,一些代码不会做任何事情。尝试调整图像大小,看看是否能修复它。
-Sil
答案 4 :(得分:0)
设置android:layout_height="0dp"