widgets之RatingBar

来源:互联网 发布:淘宝网卖什么比较畅销 编辑:程序博客网 时间:2024/06/06 17:21
Android官方文档中对于RatingBar的解释为:

A RatingBar is an extension of SeekBar and ProgressBar that shows a rating in stars. The user can touch/drag or use arrow keys to set the rating when using the default size RatingBar. The smaller RatingBar style (android.R.attr#ratingBarStyleSmall) and the larger indicator-only style (android.R.attr#ratingBarStyleIndicator) do not support user interaction and should only be used as indicators

它是对ProgressBar和SeekBar的一种扩展,可以用星星显示评价级别,用户可以拖动这个图标或者使用方向键左右的滑动。

先看一下它的集成关系:

java.lang.Object  继承者 android.view.View      继承者 android.widget.ProgressBar          继承者 android.widget.AbsSeekBar              继承者 android.widget.RatingBar
从这里也可以看出它是ProgressBar的一个子类,自然它的使用方法也和ProgressBar差不多。

<RatingBar android:id="@+id/ratingBar02"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:numStars="5"/>

效果如下:


自带半颗星的效果:


使用方法如下:


这里有一件事情需要注意:就是如果你的layout_width="wrap_content",如果你设置成fill_parent,那么显示的星星个数不一定是5个,笔者刚开始就是向上面一样,改了参数后是以下的效果:

在看一下监听里的参数:

rb.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {@Overridepublic void onRatingChanged(RatingBar arg0, float arg1, boolean arg2) {// TODO Auto-generated method stubif(arg2){Toast.makeText(MainActivity.this, "你选择了"+arg1+"颗星评价", 4444).show();}}});



其中第2个参数表示的是你选中了几颗星,这里一定要在上面的xml文件中用android:numStars来声明有几个星,不然这个返回的参数是不准确的。

0 0
原创粉丝点击