效果图
直接上代码
第一种方式:使用开源库
好多开源库都只能改变star的颜色,而不用使用图片
推荐使用:
[参考链接1](https://github.com/zhanghai/MaterialRatingBar)
第二种方式:使用自定义的RatingBar
这种方式可以将图片做为star
布局文件中使用
<com.docker.common.util.RatingBar
android:id="@+id/star_fwtd"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginLeft="10dp"
android:gravity="center"
app:clickable="true"
app:starCount="5"
app:starEmpty="@mipmap/pj_off"
app:starFill="@mipmap/pj_on"
app:starImageSize="20dp"
app:starPadding="8dp"
app:starStep="1" />
public class RatingBar extends LinearLayout {
/**
* 是否可点击
*/
private boolean mClickable;
/**
* 星星总数
*/
private int starCount;
/**
* 星星的点击事件
*/
private OnRatingChangeListener onRatingChangeListener;
/**
* 每个星星的大小
*/
private float starImageSize;
/**
* 每个星星的间距
*/
private float starPadding;
/**
* 星星的显示数量,支持小数点
*/
private float starStep;
/**
* 空白的默认星星图片
*/
private Drawable starEmptyDrawable;
/**
* 选中后的星星填充图片
*/
private Drawable starFillDrawable;
/**
* 半颗星的图片
*/
private Drawable starHalfDrawable;
/**
* 每次点击星星所增加的量是整个还是半个
*/
private StepSize stepSize;
/**
* 设置半星的图片资源文件
*
* @param starHalfDrawable
*/
public void setStarHalfDrawab