У меня есть кнопка. Когда я нажимаю кнопку, я должен сделать текст жирным шрифтом, в противном случае нормальный. Поэтому я написал стили для жирного и нормального.
<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>
Теперь у меня есть button_states.xml как:
<?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>
В моем макете для этой кнопки я должен сделать фон также прозрачным ... Как я это сделаю? Мой код макета:
<Button android:id="@+id/Btn" android:background="@drawable/button_states" />
Как включить прозрачный фон в моем стиле?
Ответы:
Чтобы сделать фон прозрачным, просто сделайте
android:background="@android:color/transparent"
.Однако ваша проблема, кажется, немного глубже, поскольку вы используете селекторы действительно странным образом. То, как вы используете это, кажется неправильным, хотя, если это действительно работает, вы должны поместить фоновое изображение в стиль как
<item/>
.Посмотрите, как стили используются в источнике Android. Хотя они не меняют стиль текста при нажатии кнопок, есть много хороших идей о том, как достичь своих целей.
источник
Попробуйте новый способ установить прозрачный фон
источник
используйте
#0000
(только четыре нуля, иначе это будет считатьсяblack
) это цветовой код для прозрачного. Вы можете использовать его напрямую, но я рекомендую вам определить цвет в color.xml, чтобы вы могли наслаждаться повторным использованием кода.источник
@android:color/transparent
Добавьте это в свой XML -
android:background="@android:color/transparent"
источник
Вы также можете использовать: в вашем xml:
или в коде:
источник
Я достиг этого с помощью XML с
источник
я использовал
и
источник
Селекторы работают только для рисования, а не для стилей. Ссылка
Во-первых , чтобы сделать фон кнопки прозрачным, используйте следующий атрибут, так как это не повлияет на анимацию дизайна материала:
Есть много способов стилизовать вашу кнопку. Проверьте этот учебник .
Во-вторых , чтобы сделать текст жирным при нажатии, используйте этот код Java:
источник
Вы можете достичь этого, установив цвета альфа-канала.
Цветовая схема такая: #AARRGGBB, где A обозначает альфа-канал (прозрачность), R обозначает красный, G обозначает зеленый и B обозначает синий.
источник
Шаг 1: Создайте новый файл ресурсов в Drawable и скопируйте и вставьте
сохранить его как ButtonUI (скажем)
Шаг 2. Примените пользовательский интерфейс к кнопке xml
источник
Код:
Xml:
источник
Мы можем использовать атрибут android: background в Button xml, как показано ниже.
Или мы можем использовать стиль
style="?android:attr/borderlessButtonStyle"
для прозрачного и теневого фона.источник
Вы применяете цвет фона, как
transparent(light gray)
при нажатии кнопки.В приведенном выше методе вы устанавливаете цвет фона кнопки.
источник
Вы можете сделать это легко, добавив ниже атрибут в файл XML. Этот код был проверен много раз.
источник