Android学习(13)RatingBar_评星控件
RatingBar:评星控件。
相关属性:
Android:numStars:设置评星数量
Android:rating:指定当前分数
Android:stepSize:指定分数增量单位
1.在布局文件中设置三个不同大小的RatingBar
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tvRB"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RatingBar
android:id="@+id/rb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:rating="1"
android:stepSize="0.5"/>
<RatingBar
android:id="@+id/rb2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="10"
android:rating="8.5"
style="@style/Base.Widget.AppCompat.RatingBar.Indicator"/>
<RatingBar
android:id="@+id/rb3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:rating="5"
style="@style/Base.Widget.AppCompat.RatingBar.Small"/>
</LinearLayout>
注意事项:只有默认style的RatingBar可以滑动设置星星数
2.在Activity中获取RatingBar的值
public class RatinBarActivity extends AppCompatActivity implements RatingBar.OnRatingBarChangeListener{
private RatingBar rb;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ratin_bar);
rb = (RatingBar)findViewById(R.id.rb);
tv = (TextView)findViewById(R.id.tvRB);
rb.setOnRatingBarChangeListener(this);
}
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
//得到当前星星的数量
ratingBar.setRating(rating);
//如果当前的星星ID与用户操作的ID是同一个
if (ratingBar.getId() == R.id.rb) {
tv.setText("分数为:" + rating);
}
}
}
声明:
1.知识点来源于《网易云课堂》——《Android基础视频教程》
2.本文只用于本人自身学习记录,如有侵权,请立即通知本人更改或删除