Android-自定义星星评分控件RatingBar

版权声明:个人学习记录,由于能力和时间有限,如果有错误望读者纠正,谢谢! 转载请注明出处 谢谢合作 https://blog.csdn.net/qq_43377749/article/details/84841917

星级评分条RatingBar类似于SeekBar、ProgressBar'等等都可以自定义样式

它的主要用途就比如淘宝、景点 满意度等

这里给出两种自定义效果

如图所示 第一种是通过RatingBar获得分数 第二个是通过RatingBar动态调节控件属性(透明度)

由于RatngBar使用简单

自定义样式方法和:https://blog.csdn.net/qq_43377749/article/details/84839079一样 

在drawable中建一个xml文件写一个 layer-list 就行

这里直接给出它的使用方法:

public class MainActivity extends Activity {
    RatingBar ratingBar ;RatingBar ratingBar02 ;
    TextView textView ;
    ImageView imageView ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ratingBar = (RatingBar) findViewById(R.id.rating);
        ratingBar02 = (RatingBar) findViewById(R.id.rating02);
        textView = (TextView) findViewById(R.id.textview);
        imageView = (ImageView) findViewById(R.id.image);
        ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
                textView.setText(String.valueOf((int) (rating)));
            }
        });
        ratingBar02.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
                imageView.setAlpha((int)(rating*255/5));
            }
        });
    }
}

然后是布局文件:

文件中的属性 与ProgressBar一样

<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textview"
        android:layout_width="match_parent"
        android:layout_height="75dp"
        android:gravity="center_horizontal"
        android:textSize="50dp"/>
    <!--android:progressDrawable自定义样式-->
    <RatingBar
        android:id="@+id/rating"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numStars="5"
        android:max="255"
        android:progress="255"
        android:stepSize="0.5"/>
    
    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:src="@drawable/huangjindiao"/>
    
    <RatingBar
        android:id="@+id/rating02"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numStars="5"
        android:progressDrawable="@drawable/my_bar"
        android:stepSize="0.5"/>

</LinearLayout>

猜你喜欢

转载自blog.csdn.net/qq_43377749/article/details/84841917