Android 如何以点值显示评级条评级?
我用星图创建了评级条。但我在将评级值设置为浮动(如3.2)时遇到问题,它无法正常工作。如果设置为3.2,它将选择4颗星。我该怎么办 xml: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="
将比率栏更改为以下内容
<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" />