Tôi gặp sự cố khi đặt tùy chỉnh ratingBar
trong Java. Vấn đề là setNumStars
và setRating
không hoạt động. Tôi chỉ nhận được một ngôi sao trên màn hình được đánh dấu đầy đủ mặc dù tôi đã đặt tốc độ thành 0.0f.setNumStars và setRating không hoạt động trong tùy chỉnh RatingBar
Dưới đây là các mã:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
chapter1 = new Chapter(this);
android.widget.RelativeLayout.LayoutParams layoutParam = new RelativeLayout.LayoutParams(metrics.widthPixels , metrics.heightPixels);
myLayout.addView(chapter1, layoutParam);
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
RatingBar ratingBar = new RatingBar(this);
ratingBar.setProgressDrawable(ResourcesCompat.getDrawable(getResources(), R.drawable.custom_ratingbar_menu, null));
ratingBar.setNumStars(3);
ratingBar.setRating(0.0f);
layoutParam = new RelativeLayout.LayoutParams(metrics.widthPixels/6 , metrics.heightPixels/32);
layoutParam.setMargins(70 + chapter1.getLeft() + wSize * j, 50 + chapter1.getTop() + hSize * i + (metrics.heightPixels/6), 0, 0);
myLayout.addView(ratingBar, layoutParam);
}
}
Và chúng ta đã sử dụng câu trả lời được chấp nhận trong How to create Custom Ratings bar in Android cho custom_ratingarbar_menu
Dưới đây là custom_ratingbar_menu
:
<?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/customm_empty_menu" />
<item android:id="@android:id/secondaryProgress"
android:drawable="@drawable/customm_empty_menu" />
<item android:id="@android:id/progress"
android:drawable="@drawable/custom_full_menu" />
</layer-list>
Và nó customm_empty_menu
:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:state_window_focused="true"
android:drawable="@drawable/stars_off_menu" />
<item android:state_focused="true"
android:state_window_focused="true"
android:drawable="@drawable/stars_off_menu" />
<item android:state_selected="true"
android:state_window_focused="true"
android:drawable="@drawable/stars_off_menu" />
<item android:drawable="@drawable/stars_off_menu" />
</selector>
Và đây là custom_full_menu
:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:state_window_focused="true"
android:drawable="@drawable/stars_on_menu" />
<item android:state_focused="true"
android:state_window_focused="true"
android:drawable="@drawable/stars_on_menu" />
<item android:state_selected="true"
android:state_window_focused="true"
android:drawable="@drawable/stars_on_menu" />
<item android:drawable="@drawable/stars_on_menu" />
</selector>
Đọc https://stackoverflow.com/questions/5800657/how-to-create-custom-ratings-bar-in-android – Dennis
Đồng thời đăng tệp 'custom_ratingbar_menu' của bạn cho vấn đề xếp hạng – Rehan
@Ran đã hoàn thành ... ! –