我想创建一个RatingBar
,不使用图片来设置边框。但我似乎无法做到这一点。
这就是我想要的样子:
这是我得到的(填充 - 半空 - 空):
这是我的布局:
<RatingBar
android:id="@+id/ratingbar_rate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:numStars="5"
android:rating="2.5"
android:stepSize="0.5"
android:scaleX="3.5"
android:scaleY="3.5"
style="?android:attr/ratingBarStyleIndicator"
android:isIndicator="false"
android:progressTint="@color/star"
android:progressBackgroundTint="@color/star_border"
android:secondaryProgressTint="@color/star_partially_empty"
android:backgroundTint="@color/star_partially_empty"
/>
答案 0 :(得分:1)
答案 1 :(得分:0)
好的,所以我使用了自定义的可绘制layer-list
,Android就是其余的。
我的RatingBar
:
<RatingBar
android:id="@+id/ratingbar_rate"
style="@style/rateUsBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:rating="0"
android:stepSize="1"
android:layout_gravity="center"
/>
在styles.xml
:
<resources>
...
...
<style name="rateUsBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/rating_stars</item>
<item name="android:minHeight">@dimen/rate_us_star_minheight</item>
<item name="android:maxHeight">@dimen/rate_us_star_maxheight</item>
</style>
</resources>
在rating_stars.xml
:
<?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/rate_empty" /> //gray star for empty
<item
android:id="@android:id/secondaryProgress"
android:drawable="@drawable/rate_empty" /> //gray star for empty
<item
android:id="@android:id/progress"
android:drawable="@drawable/rate_filled" /> //yellow star for filled
</layer-list>
在dimens.xml
:
<resources>
...
...
<dimen name="rate_us_star_minheight"> <!--height of your image--> </dimen>
<dimen name="rate_us_star_maxheight"> <!--height of your image--> </dimen>
</resources>
那就是它!