W drugim przykładzie TextView zastanawiam się, kiedy używam tylko android:backgroundTintbez android:background, ten drugi TextView niczego nie zmienia. Jednak próbuję android:backgroundTintw Button, kolor przycisku wygląda jak ten sam kolor backgroundTint, który ustawiłem. Czy mógłbyś wyjaśnić te przypadki?
Vinh Nguyen
@VinhNguyen, android:backgroundwłaściwość musi być ustawiona, android:backgroundTintaby był widoczny w TextView. W przypadku Button, zgaduję, że ma już jakieś tło / kolor ustawiony przez framework.
Yogesh Umesh Vaity
13
backgroundTintAtrybut pomoże Ci dodać odcień (cień) w tle. Możesz podać wartość koloru dla tego samego w postaci -"#rgb", "#argb", "#rrggbb", or "#aarrggbb".
Z backgroundTintModedrugiej strony pomoże Ci zastosować odcień tła. Musi mieć stałe wartości, takie jak src_over, src_in, src_atop,itp.
Zapoznaj się z tym, aby uzyskać jasny obraz wartości stałych, których można użyć. Wyszukaj backgroundTintatrybut, a opis wraz z różnymi atrybutami będzie dostępny.
Nie będę zbytnio podkreślał różnicy, ponieważ jest już omówiona, ale zauważ poniżej:
android:backgroundTintandroid:backgroundTintMode są dostępne tylko w API 21
Jeśli masz widżet z rysowanym tłem png / wektorowym ustawionym przez android:backgroundi chcesz zmienić jego domyślny kolor, możesz użyć, android:backgroundTintaby dodać do niego cień.
Jeśli spróbujesz zmienić kolor akcentu FloatingActionButtonużycia android:background, nie zauważysz zmiany, to znaczy, ponieważ jest już app:srcCompatużywany, więc aby to zrobić, możesz android:backgroundTintzamiast tego użyć
Odcień stosowany do tła. Musi być wartością kolor, w formie #rgb, #argb, #rrggbb, lub #aarrggbb.
Może to być również odniesienie do zasobu (w postaci „@ [pakiet:] typ: nazwa”) lub atrybutu motywu (w postaci „? [Pakiet:] [typ:] nazwa”) zawierającego wartość tego typu .
android:backgroundTint
bezandroid:background
, ten drugi TextView niczego nie zmienia. Jednak próbujęandroid:backgroundTint
w Button, kolor przycisku wygląda jak ten sam kolor backgroundTint, który ustawiłem. Czy mógłbyś wyjaśnić te przypadki?android:background
właściwość musi być ustawiona,android:backgroundTint
aby był widoczny wTextView
. W przypadkuButton
, zgaduję, że ma już jakieś tło / kolor ustawiony przez framework.backgroundTint
Atrybut pomoże Ci dodać odcień (cień) w tle. Możesz podać wartość koloru dla tego samego w postaci -"#rgb", "#argb", "#rrggbb", or "#aarrggbb".
Z
backgroundTintMode
drugiej strony pomoże Ci zastosować odcień tła. Musi mieć stałe wartości, takie jaksrc_over, src_in, src_atop,
itp.Zapoznaj się z tym, aby uzyskać jasny obraz wartości stałych, których można użyć. Wyszukaj
backgroundTint
atrybut, a opis wraz z różnymi atrybutami będzie dostępny.źródło
Nie będę zbytnio podkreślał różnicy, ponieważ jest już omówiona, ale zauważ poniżej:
android:backgroundTint
android:backgroundTintMode
są dostępne tylko w API 21android:background
i chcesz zmienić jego domyślny kolor, możesz użyć,android:backgroundTint
aby dodać do niego cień.przykład
Inny przykład
Jeśli spróbujesz zmienić kolor akcentu
FloatingActionButton
użyciaandroid:background
, nie zauważysz zmiany, to znaczy, ponieważ jest jużapp:srcCompat
używany, więc aby to zrobić, możeszandroid:backgroundTint
zamiast tego użyćźródło
BackgroundTint działa jako filtr kolorów.
FEFBDE jako odcień
37AEE4 jako tło
Spróbuj zobaczyć różnicę na podstawie odcienia / tła komentarza i sprawdź wyjście, gdy oba są ustawione.
źródło
android: backgroundTintMode
android: backgroundTint
źródło