Zrobiłem przycisk, który zmienia tło do rysowania w różnych stanach, w ten sposób:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/btn_location_pressed" /> <!-- pressed -->
<item android:state_focused="true" android:drawable="@drawable/btn_location_pressed"/> <!-- focused -->
<item android:drawable="@drawable/btn_location"/> <!-- default -->
Problem polega na tym, że próbuję również zmienić textColor, tak jak robię to z rysowalnym, ale nie jestem w stanie tego zmienić. Próbowałem już Androida: textColor i Android: kolor, ale pierwszy nie działa, a sekundy zmieniają moje tło.
Następny kod jest częścią mojego układu. Jeśli chodzi o kolor tekstu, działa on tylko dla normalnego koloru tekstu, nie zmieniając go na biały po naciśnięciu
<Button android:id="@+id/location_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:background="@drawable/location"
android:textSize="15sp"
android:textColor="@color/location_color"
android:textColorHighlight="#FFFFFF"
/>
Czy ktoś ma jakiś pomysł?
android
android-button
android-selector
dwbrito
źródło
źródło
res/color
folderze. A kiedy zadzwonisz, użyj:android:textColor="@color/button_text_color"
Innym sposobem na to jest w twojej klasie:
źródło
ok bardzo proste najpierw przejdź do 1. res-valuse i otwórz kolory. xml 2. skopiuj 1 zdefiniowany tekst na przykład # FF4081 i zmień nazwę na przykład zmieniłem na biały i zmień jego wartość na przykład zmieniłem na #FFFFFF dla biała wartość jak ta
następnie w swoim przycisku dodaj tę linię
ok b3 to nazwa mojego przycisku, więc zmieniłem nazwę przycisku ur, wszystkie inne będą takie same, jeśli użyjesz białego koloru, jeśli zmienisz inny kolor, a następnie zmień biały na nazwę swojego koloru, ale najpierw zdefiniujesz ten kolor w kolorach. XML tak jak wyjaśniłem w pont 2
źródło
Zmiana koloru tekstu przycisku
Ponieważ ta metoda jest teraz przestarzała
Używam następujących:
źródło
Użyj w
getColorStateList
ten sposóbzamiast
getColor
źródło