您的位置:首页 > 其它

RatingBar 的使用 以及自定义的RatingBar

2016-03-19 14:23 211 查看
关于 RatingBar

1. RatingBar (星级评分条)和SeekBar 是十分相似的,他们有相同的父类 AbsSeekBar.他们允许用户通过拖动来改变进度.而 RatingBar 的最大的区别就是通过星星来表示进度.

2.下图是 RatingBar的一些常见的XML属性:

具体参照:  http://wear.techbrood.com/reference/android/widget/RatingBar.html
3. 实例代码:

定义一个RatingBar

<RatingBar
android:id="@+id/rb"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

对应的java 代码:
public class StarActivity extends BaseActivity {

private RatingBar bar;
ImageView image;
SeekBar seek;

@Override
protected void initContentView(Bundle savedInstanceState) {
setContentView(R.layout.activity_star_layout);
}

@Override
protected void initView() {
bar = findview(R.id.ratBar);
image = findview(R.id.image);
}

@Override
protected void initData() {
bar.setOnRatingBarChangeListener(new RatingBarChangeListenerImpl());
bar.setNumStars(5); // 设置 星星的总个数
bar.setRating(2);  // 设置星级评分条的默认星级
bar.setStepSize(0.5f); // 设置每次需要改变的星级
}

private class RatingBarChangeListenerImpl implements OnRatingBarChangeListener {
@Override
public void onRatingChanged(RatingBar ratingBar, float v, boolean b) {
Toast.makeText(StarActivity.this, "点击星星===", Toast.LENGTH_LONG).show();
Log.i("SUO", "现在的等级:" + v + ",:用户是否触发 点击: " + b);
}

}
}
最后在星星上进行拖动可以看到星级的变化.

通过 OnRatingBarChangeListener 来设置监听器,监听星级的改变.
参照下图:

4. 自定义星星的图案

① 在drawable 文件加下创建文件 dr_myratingbar.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/b2" />
<item
android:id="@android:id/progress"
android:drawable="@drawable/b1" />
</layer-list>
② styles.xml下添加一个标签
<style name="MyRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/dr_myratingbar</item>
<item name="android:minHeight">45dip</item>
<item name="android:maxHeight">45dip</item>
</style>

③ 在布局中引入即可:
<RatingBar
android:id="@+id/ratBar"
style="@style/MyRatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:isIndicator="false" />

最后是图片:

项目中可能会用到,所以提前先看一下......

自定义rating的实现 参考链接: http://blog.csdn.net/linglongxin24/article/details/52918701
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: