Mam przycisk. Kiedy naciskam przycisk, muszę ustawić tekst jako pogrubiony, w przeciwnym razie normalny. Więc napisałem style dla odważnych i normalnych.
<style name="textbold" parent="@android:style/TextAppearance">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textStyle">bold</item>
</style>
<style name="textregular" parent="@android:style/TextAppearance">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textStyle">normal</item>
</style>
Teraz mam button_states.xml jako:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="true"
style="@style/textbold" />
<item android:state_focused="false" android:state_pressed="true"
style="@style/textregular" />
<item style="@style/textregular" />
</selector>
W moim układzie dla tego przycisku muszę też ustawić przezroczyste tło ... Jak to zrobić? Mój kod układu to:
<Button android:id="@+id/Btn" android:background="@drawable/button_states" />
Jak dodać przezroczyste tło do mojego stylu?
Odpowiedzi:
Aby tło było przezroczyste, po prostu zrób
android:background="@android:color/transparent"
.Jednak Twój problem wydaje się być nieco głębszy, ponieważ używasz selektorów w naprawdę dziwny sposób. Sposób, w jaki go używasz, wydaje się zły, chociaż jeśli faktycznie działa, powinieneś umieścić obraz tła w stylu jako plik
<item/>
.Przyjrzyj się bliżej, w jaki sposób style są używane w źródle Androida. Chociaż nie zmieniają stylu tekstu po kliknięciu przycisków, jest tam wiele dobrych pomysłów, jak osiągnąć swoje cele.
źródło
Wypróbuj nowy sposób ustawiania przezroczystego tła
źródło
użyj
#0000
(tylko cztery zera, w przeciwnym razie będzie uważane zablack
) to jest kod koloru dla przezroczystości. Możesz użyć go bezpośrednio, ale polecam zdefiniowanie koloru w color.xml, abyś mógł cieszyć się ponownym użyciem kodu.źródło
@android:color/transparent
Dodaj to do swojego Xml -
android:background="@android:color/transparent"
źródło
Możesz również użyć: w swoim xml:
lub w kodzie:
źródło
Osiągnąłem to w XML z
źródło
użyłem
i
źródło
Selektory działają tylko w przypadku elementów rysunkowych, a nie stylów. Odniesienie
Po pierwsze , aby ustawić przezroczyste tło przycisku, użyj następującego atrybutu, ponieważ nie wpłynie to na animacje Material Design:
Istnieje wiele sposobów stylizacji przycisku. Sprawdź ten samouczek .
Po drugie , aby pogrubić tekst po naciśnięciu, użyj tego kodu java:
źródło
Możesz to osiągnąć poprzez ustawienie kanału alfa kolorów.
Schemat kolorów jest taki jak ten #AARRGGBB, gdzie A oznacza kanał alfa (przezroczystość), R oznacza czerwony, G - zielony i B - niebieski.
źródło
Krok 1: Utwórz nowy plik zasobów w formie do rysowania i wklejania
zapisz to jako ButtonUI (powiedzmy)
Krok 2: Zastosuj interfejs użytkownika do przycisku xml
źródło
Kod:
XML:
źródło
Możemy użyć atrybutu android: background w Button xml jak poniżej.
Albo możemy użyć stylu
style="?android:attr/borderlessButtonStyle"
dla przezroczystego i pozbawionego cienia tła.źródło
Kolor tła stosuje się tak samo, jak
transparent(light gray)
kliknięcie przycisku.W powyższej metodzie ustawiasz kolor tła przycisku.
źródło
Możesz to łatwo zrobić dodając poniższy atrybut w pliku xml. Ten kod był testowany dużo czasu.
źródło