作为一个初级小菜逼码农,刚做的几个项目都有设计到评分这一块的功能(感觉很少有应用不做吧……),系统自带的ratingbar用来用去真是费劲,背景图片还得去单独建立一个资源文件,用起来很是不简洁,就琢磨着自己写一个,很简单的自定义控件,简单实用,基本需求都有O(∩_∩)O~
已经上传到GitHub和jcenter,加一句依赖就可以随便用啦。
GitHub地址:
https://github.com/heavenrobotxu/HrRatingBar
使用
依赖
Gradle
compile 'com.xztot:xzratingbar:1.0.1'
现在你可以在XMl文件中直接使用了,就像这样
<com.hr.xz.hratingbar.HrRatingBar
android:id="@+id/my_rating_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:starTotalNum="5"
app:starSelectedNum="3"
app:starDefaultDrawable="@mipmap/star_default"
app:starSelectedDrawable="@mipmap/star_selected"
app:starHalfDrawable="@mipmap/star_half"
app:isIndicator="true"
app:starMargin="10dp"
app:isShowHalf="true"
app:starHeight="20dp"
app:starWidth="20dp"
/>
可使用的属性
starTotalNum : 要显示的星星总数(默认为5)
starSelectedNum : 已选择星星数(默认为5)
starDefaultDrawable : 默认星星图标
starHalfDrawable : 半星图标
starSelectedDrawable : 被选中星星图标
starMargin : 星星之间间隔(可选,不设置的话默认为0)
isIndicator : 是否仅做展示不响应点击事件(默认为false)
isShowHalf : 是否显示半颗星(默认为false)
starHeight : 单个星星高度(可选,不设置的话按照图片为准)
starWidth : 单个星星宽度(可选,不设置的话按照图片为准)
监听回调代码
mRb = (HrRatingBar) findViewById(R.id.my_rating_bar);
mRb.setRatingChangeListener(new HrRatingBar.OnRatingChangListener() {
@Override
public void onRatingChange(float rating) {
Toast.makeText(MainActivity.this, rating + "", Toast.LENGTH_SHORT).show();
}
});
怎么样是不是很无脑简单……小控件一枚,也是第一次上传到jcenter(搞了好久……),各位大大可以试试,非常欢迎批评指教_
网友评论