Android 如何以点值显示评级条评级?

Android 如何以点值显示评级条评级?,android,android-layout,android-studio,Android,Android Layout,Android Studio,我用星图创建了评级条。但我在将评级值设置为浮动(如3.2)时遇到问题,它无法正常工作。如果设置为3.2,它将选择4颗星。我该怎么办 xml: 将比率栏更改为以下内容 <RatingBar android:id="@+id/rb_ratingBar" style="@style/CustomRating" android:layout_width="

我用星图创建了评级条。但我在将评级值设置为浮动(如3.2)时遇到问题,它无法正常工作。如果设置为3.2,它将选择4颗星。我该怎么办

xml:


将比率栏更改为以下内容

<RatingBar
                        android:id="@+id/rb_ratingBar"
                        style="@style/CustomRating"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:isIndicator="true"
                        android:numStars="5"
                        android:stepSize="0.1" />


它对我很有用。

用这个替换xml代码

              <RatingBar
                android:id="@+id/ratingBar"
                style="?android:attr/ratingBarStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:stepSize="0.01"
                android:numStars="5" />


您已经给出了android:stepSize=“0.5”。给出
android:stepSize=“0.1”
。可能重复的stepSize不起作用。我检查了add code或follow
<?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/ic_star_normal"

        ></item>

    <item
        android:id="@android:id/secondaryProgress"
        android:drawable="@drawable/ic_star_selected"></item>

    <item
        android:id="@android:id/progress"
        android:drawable="@drawable/ic_star_selected"></item>

</layer-list> 
  @Override
    public void onBindViewHolder(final MyViewHolders holder, final int listPosition) {

        TextView TVProject = holder.mTvProjectName;
        TextView TvDescription = holder.mTvDescription;
        RatingBar RbRating = holder.mRatingBar;
        ImageView IvIcon = holder.IvIcon;
        TextView TvRatings = holder.mTvRatingNumber;
        final ProgressBar progressBar = holder.mProgressBar;

     /*   LayerDrawable stars = (LayerDrawable) RbRating.getProgressDrawable();
        stars.getDrawable(2).setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_ATOP);    //background
        stars.getDrawable(0).setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_ATOP);    //empty
        stars.getDrawable(1).setColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP);      //border*/



        String receivedImage = mContext.getString(R.string.WS_DIRECTORY_IMAGE) +
                mRatingReviewModelArrayList.get(listPosition).getCompanyImage();
        String receivedProjectName = mRatingReviewModelArrayList.get(listPosition).getProj_Name();
        String receivedDescription = mRatingReviewModelArrayList.get(listPosition).getReview();
        Float receivedRating = mRatingReviewModelArrayList.get(listPosition).getAverage();

        ImageLoader.getInstance().displayImage(receivedImage, IvIcon, new ImageLoadingListener() {
            @Override
            public void onLoadingStarted(String imageUri, View view) {
                progressBar.setVisibility(View.VISIBLE);
            }

            @Override
            public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
                progressBar.setVisibility(View.GONE);
            }

            @Override
            public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                progressBar.setVisibility(View.GONE);
            }

            @Override
            public void onLoadingCancelled(String imageUri, View view) {
                progressBar.setVisibility(View.GONE);
            }
        });
        if (receivedDescription.equals("")) {
            TvDescription.setVisibility(View.INVISIBLE);
        }
        if (receivedProjectName.equals("")) {
            TVProject.setVisibility(View.INVISIBLE);
        }

        TVProject.setText(receivedProjectName);
        TvDescription.setText(receivedDescription);
        RbRating.setRating(receivedRating);
        RbRating.setRating((float) 3.5);
        TvRatings.setText(String.valueOf(receivedRating));
    }

    @Override
    public int getItemCount() {
        return mRatingReviewModelArrayList.size();
    }

    static class MyViewHolders extends RecyclerView.ViewHolder {

        private final TextView mTvProjectName, mTvDescription, mTvRatingNumber;
        private final RatingBar mRatingBar;
        private final ImageView IvIcon;
        private final ProgressBar mProgressBar;

        MyViewHolders(View itemView) {
            super(itemView);
            this.mProgressBar = (ProgressBar) itemView.findViewById(R.id.progressBar_review);
            this.mTvProjectName = (TextView) itemView.findViewById(R.id.tv_projects);
            this.mTvDescription = (TextView) itemView.findViewById(R.id.tv_review_description);
            this.mRatingBar = (RatingBar) itemView.findViewById(R.id.rb_ratingBar);
            this.IvIcon = (ImageView) itemView.findViewById(R.id.img_rating_icon);
            this.mTvRatingNumber = (TextView) itemView.findViewById(R.id.tv_rating_number);

        }
    }
<RatingBar
                        android:id="@+id/rb_ratingBar"
                        style="@style/CustomRating"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:isIndicator="true"
                        android:numStars="5"
                        android:stepSize="0.1" />
              <RatingBar
                android:id="@+id/ratingBar"
                style="?android:attr/ratingBarStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:stepSize="0.01"
                android:numStars="5" />