Dodałem RatingBar w układzie:
<RatingBar
android:id="@+id/ratingbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:stepSize="1.0"
/>
Ale domyślny styl paska oceny jest za duży.
Próbowałem to zmienić, dodając styl androida:style="?android:attr/ratingBarStyleSmall"
Ale wynik jest za mały i nie można ustawić stawki za pomocą tej właściwości.
Jak mogłem to zrobić?
Jak przykleić podany tutaj kod ...
Krok 1. Potrzebujesz własnych gwiazdek w
res/drawable
...Step-2 W
res/drawable
potrzebujeszratingstars.xml
następujących ...Krok 3 W
res/values
potrzebujeszstyles.xml
następujących ...Krok 4 W swoim układzie ...
źródło
Po prostu użyj:
Zmień współczynnik skali zgodnie z potrzebami.
Aby skalować bez tworzenia wypełnienia po lewej stronie, dodaj również
źródło
codeandroid:scaleX="0.75" android:scaleY="0.75" android:layout_marginRight="-25dp"
android:layout_height="40dp"
Nie ma potrzeby dodawania słuchacza do
?android:attr/ratingBarStyleSmall
. Wystarczy dodać,android:isIndicator=false
a przechwyci zdarzenia kliknięcia, npźródło
mała implementacja przez system operacyjny
źródło
zastosuj to.
źródło
Znalazłem łatwiejsze rozwiązanie niż sądzę podane powyżej i łatwiejsze niż toczenie własnego. Po prostu utworzyłem mały pasek oceny, a następnie dodałem do niego onTouchListener. Stamtąd obliczam szerokość kliknięcia i określam na tej podstawie liczbę gwiazdek. Korzystając z tego kilka razy, jedynym dziwactwem, które znalazłem, jest to, że rysowanie małego paska oceny nie zawsze kończy się dobrze w tabeli, chyba że umieszczę go w LinearLayout (wygląda dobrze w edytorze, ale nie w urządzeniu) . W każdym razie w moim układzie:
aw ramach mojej działalności:
Mam nadzieję, że to pomoże komuś innemu. Zdecydowanie łatwiejsze niż rysowanie własnego (chociaż odkryłem, że to również działa, ale chciałem po prostu łatwego użycia gwiazdek).
źródło
ratingBarStyleSmall
gwiazdy są naprawdę za małe, aby były przydatne. Myślę, że będę musiał zrobić własne, aby uzyskać gwiazdy o średnim rozmiarze.źródło
// dodaj tę linię dla małego paska oceny
źródło
chociaż odpowiedź Farry działa, dla urządzeń Samsung RatingBar przyjął losowy niebieski kolor zamiast zdefiniowanego przeze mnie. Więc użyj
zamiast.
Pełny kod, jak go używać:
źródło
Najlepsza odpowiedź dla małego paska ratingowego
źródło
Użyj tego kodu
źródło
źródło
Najlepsza odpowiedź, jaką otrzymałem
użytkownik lubi to
Zwiększenie / Zmniejszenie rozmiarów za pomocą scaleX i scaleY wartości
źródło
użyj poniższego kodu dla małego paska oceny ze zdarzeniem onTouch
źródło
Po wielu badaniach stwierdziłem, że najlepszym sposobem na zmniejszenie rozmiaru niestandardowych pasków oceny jest uzyskanie postępu, który można narysować w określonych rozmiarach, jak wspomniano poniżej:
xxhdpi - 48 * 48 pikseli
xhdpi - 36 * 36 pikseli
hdpi - 24 * 24 piksele
Stylowo ustaw minimalną i maksymalną wysokość na 16 dp dla wszystkich rozdzielczości.
Daj mi znać, jeśli to nie pomoże Ci uzyskać najlepszych ocen w małych rozmiarach, ponieważ te rozmiary uważam za bardzo zgodne i równoważne atrybutowi ratingbar.small style.
źródło
Działa dla mnie w pasku oceny xml style = "? Android: attr / ratingBarStyleSmall" add this.it będzie działać.
źródło
Rozwiązuję ten problem w następujący sposób: style = "? Android: attr / ratingBarStyleSmall"
źródło