Jak ustawić kolor gwiazdki na pasku oceny? Chcę żółte gwiazdki.Jak ustawić kolor gwiazdki na pasku oceny?
Odpowiedz
Czy próbowałeś się motyw xml, takich jak
<?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/star_empty_show"/>
<item
android:id="@android:id/secondaryProgress"
android:drawable="@drawable/star_empty_show"/>
<item
android:id="@android:id/progress"
android:drawable="@drawable/star_filled_show"/>
</layer-list>
wzywającą go w XML jako
<RatingBar
android:id="@id/rate"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5.0dip"
android:isIndicator="true"
android:max="5"
android:numStars="5"
android:progressDrawable="@drawable/ratebar_theme"
android:stepSize="0.1" />
i przy użyciu własnego kanału alfa?
Cześć kwishnu, Próbowałem tego rozwiązania, ale kiedy spróbuj ustawić ocenę podobną do 1.1, 1.2, etc ... wyświetla się jako 1.5. Zrobiłem trzygwiazdkowe obrazy, jedno puste, jedno pełne i jedno pełne. Przypuszczam, że ma to na celu interpolację między nimi, aby uzyskać części ułamkowe. Zastanawiam się, czy ktoś inny miał ten sam problem, czy też robię coś wyraźnie niewłaściwego? –
Potrzebujesz 3-gwiazdkowych obrazów (star_filled_show.png, star_half_show.png i star_empty_show.png) i jednego xml, to wszystko.
Umieść te 3 obrazy w res/drawable
.
Wpisz następujące ratingbarstars.xml
:
<?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/star_empty_show"/>
<item
android:id="@android:id/secondaryProgress"
android:drawable="@drawable/star_half_show"/>
<item
android:id="@android:id/progress"
android:drawable="@drawable/star_filled_show"/>
</layer-list>
Opowiedz swoją definicję ratingbar aby skorzystać z tej rozciągliwej
<RatingBar android:progressDrawable="@drawable/ratingbarstars.xml"/>
To trochę skomplikowane, na wspomnianym blogu, mam używany podobny ale prostszy sposób . Potrzebujesz 3-gwiazdkowych obrazów (red_star_full.png, red_star_half.png i red_star_empty.png) i jednego xml, to wszystko.
Umieść te 3 obrazy w rozdzielczości/do rysowania.
Wpisz następujące ratingbar_red.xml:
<?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/red_star_empty" />
<item android:id="@android:id/secondaryProgress" android:drawable="@drawable/red_star_half" />
<item android:id="@android:id/progress" android:drawable="@drawable/red_star_full" />
</layer-list>
i wreszcie powiedzieć twoja definicja ratingbar aby skorzystać z tej, to znaczy
<RatingBar android:progressDrawable="@drawable/ratingbar_red"/>
to wszystko.
próbować ten jeden
RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar);
LayerDrawable stars = (LayerDrawable) ratingBar.getProgressDrawable();
stars.getDrawable(2).setColorFilter(Color.YELLOW,PorterDuff.Mode.SRC_ATOP);
Co powiesz na to, kiedy gwiazda jest w połowie wypełniona? Chcę, żeby gwiazda była na wpół żółta i na wpół szara - czy coś w tym rodzaju. – iOSAndroidWindowsMobileAppsDev
Nie mam o tym pojęcia, ale można to zrobić za pomocą trybu gradientu lub trybu portowania dla tego –
. Czy mógłbyś opublikować fragment kodu? – iOSAndroidWindowsMobileAppsDev
Ten pracował dla mnie:
Drawable drawable = ratingBar.getProgressDrawable();
drawable.setColorFilter(Color.parseColor("#FFFDEC00"), PorterDuff.Mode.SRC_ATOP);
Podoba mi się ta odpowiedź, nie będziesz potrzebować niestandardowych gwiazdek. Po prostu muszę zmienić kolor jako pytanie, a nie gwiazdy. Jedyną wadą jest jeden kolor, który chyba trzeba zmodyfikować także inne rysunki. –
Najprostszy sposób:
android:progressTint="@color/color"
gładka i błyszcząca.
Proste i łatwe! +1 –
działa tylko dla wersji api 21 i wyżej – suku
@suku yup, ale pytanie nie zawierało żadnych ograniczeń dotyczących minSDK. – MiguelCatalan
Stwierdziłem, że samo ustawienie progressTint nie jest kompletnym rozwiązaniem. Zmieni kolor gwiazdy, ale nie w przypadku częściowego wypełnienia gwiazd, jeśli twój rozmiar kroku jest mniejszy niż 1. Z mojego doświadczenia wynika również, że musisz ustawić parametr secondaryProgressTint, aby powstrzymać domyślny odcień gwiazdy przed wychowaniem jego paskudnej głowy. Oto mój kod:
android:progressTint="@color/accent"
android:secondaryProgressTint="@android:color/transparent"
Mam nadzieję, że to pomoże komuś w mojej sytuacji.
<RatingBar
android:id="@+id/rating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/RatingBar"/>
z motywem w stylu
<style name="RatingBar" parent="Theme.AppCompat">
<item name="colorControlNormal">@color/gray</item>
<item name="colorControlActivated">@color/yellow</item>
Kiedy to zrobiłem, a ja musiałem umieścić TintMode też.
<RatingBar
android:progressTint="@color/colorAccent"
android:progressTintMode="src_atop" ---- This is important!
android:secondaryProgressTint="@color/colorPrimary"
android:secondaryProgressTintMode="src_atop" ---- This is important!
android:progressBackgroundTint="@color/black_alpha"/>
tylko dla api wersji 21 i powyżej
Pasek ocena jest stosowany automatycznie w czasie wykonywania do zmiany koloru na dotykowym gwiazdy.
najpierw dodać styl w aplikacji \ src \ main \ Res \ Wartości \ plik styles.xml:
<style name="RatingBar" parent="Theme.AppCompat">
<item name="colorControlNormal">@color/duskYellow</item>
<item name="colorControlActivated">@color/lightGrey</item></style>
Następnie pasek ocena dodać temat tak:
<RatingBar
android:id="@+id/rating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:stepSize="1"
android:theme="@style/RatingBar"/>
- 1. Odstęp między gwiazdami na pasku oceny?
- 2. Kolor czcionki na pasku nawigacyjnym
- 3. Jak ustawić pogrubiony tytuł na pasku akcji?
- 4. Kolor przycisku na pasku nawigacyjnym - iPhone
- 5. jak ręcznie ustawić zakres na pasku kolorów?
- 6. Jak ustawić szerokość kreski na pasku błędów w matplotlib?
- 7. Jak ustawić kolor aUIBUTton?
- 8. Jak ustawić kolor UnderlineSpan?
- 9. IOS 5 Jak zmienić kolor przycisku Wstecz na pasku nawigacyjnym?
- 10. Jak programowo ustawić styl na pasku postępu na Androidzie
- 11. Jak zmienić oceny gwiazdek na Androidzie?
- 12. ikona gwiazdki jeżyny
- 13. Jak ustawić kolor tekstu pokrętła?
- 14. Jak ustawić kolor ikony MenuItem?
- 15. Dwie gwiazdki na liście Prologów
- 16. pasek wyszukiwania zmienia kolor w pasku nawigacyjnym
- 17. Zmień kolor tekstu na pasku stanu, gdy primaryDark jest biały
- 18. ngJeśli chcesz ustawić kolor?
- 19. Jak zmienić kolor UINavigationBar na całym świecie?
- 20. Sprawdzone metody: jak najlepiej implementować gwiazdki gwiazdkowe w szablonach Django
- 21. Cel C: Jak zmienić kolor tekstu w pasku nawigacyjnym
- 22. Android Linki Jak ustawić niestandardowy kolor łącza?
- 23. Jak ustawić własny kolor w itext?
- 24. Jak ustawić kolor tekstu podsumowania preferencji Androida?
- 25. Jak ustawić kolor obrazu szablonowego w NSTextAtuowanie
- 26. Android - jak ustawić kolor tła wszystkich ekranów?
- 27. Jak ustawić niestandardowy kolor tła na linii w JTextPane
- 28. Android: Jak ustawić kolor tekstu toast za
- 29. Jak ustawić kolor bieżący dnia w FullCalendar?
- 30. Jak ustawić kolor tła ramki HTML?
Spróbuj tego: [Android RatingBar zmienić kolory gwiazdy] (http://stackoverflow.com/a/2447209/2558882). – Vikram
Znajdź najprostszy sposób, jeśli używasz aktywności AppCompat http://stackoverflow.com/questions/2446270/android-ratingbar-change-star-colors/36297738#36297738 –