RatingBar主要用在电子相册、网上书店和对文章进行评分的功能。
在学习之前,我们先了解一下Android官方文档中对于RatingBar的使用
1. android.widget.RatingBar
RatingBar是 SeekBar 和 ProgressBar 的扩展,它显示的是一个五角星的效果。用户可以拖动和触摸RatingBar来达到评分的功能。2. 案例实现
其中涉及到的一个监听器接口如下
![]()
进入这个接口,我们需要实现的这个方法如下所示:![]()
第一个参数 ratingBar: 表示当前评分进度条发生改变的时候会回调第二个参数 rating : 表示当前的值,从 getProgress()方法来获得第三个表示 fromUser : true表示进度改变是通过触摸和滑动来实现的。
1) 布局文件3. 程序实现结果:
2) 主要代码<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="评分控件的使用" android:textSize="20dp" /> <RatingBar android:id="@+id/ratingBar" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </LinearLayout>
public class RatingBarDemo extends Activity implements OnRatingBarChangeListener{ private RatingBar ratingBar; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initComponent(); ratingBar.setMax(100); //设置最大刻度 ratingBar.setProgress(20); //设置当前刻度 ratingBar.setOnRatingBarChangeListener(this); } private void initComponent(){ ratingBar = (RatingBar)findViewById(R.id.ratingBar); } @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { int progress = (int)ratingBar.getProgress(); //获得当前的刻度 // TODO Auto-generated method stub Toast.makeText(RatingBarDemo.this, "progress: " + progress + "rating: " + rating, 1).show(); } }
源码下载地址: http://download.youkuaiyun.com/detail/xukunhui2/5527267![]()