Фон кнопки как прозрачный
У меня есть кнопка. Когда я нажимаю кнопку, я должен сделать текст полужирным, иначе нормальным. Поэтому я написал стили для смелых и нормальных.
<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" />
Как включить фон в качестве прозрачного в моем стиле?
Ответы
Ответ 1
Чтобы сделать фон прозрачным, просто сделайте android:background="@android:color/transparent"
.
Однако ваша проблема, кажется, немного глубже, поскольку вы используете селектор по-настоящему странным образом. То, как вы его используете, кажется неправильным, хотя, если оно действительно работает, вы должны поместить фоновое изображение в стиле как <item/>
.
Познакомьтесь с тем, как стили используются в источнике Android. Хотя они не меняют стиль текста при нажатии кнопок, есть много хороших идей о том, как выполнить свои цели там.
Ответ 2
Попробуйте новый способ установить прозрачный фон
android:background="?android:attr/selectableItemBackground"
Ответ 3
используйте #0000
(только четыре нуля в противном случае это будет считаться black
), это код цвета для прозрачного. Вы можете использовать его напрямую, но я рекомендую вам определить цвет в color.xml, чтобы вы могли наслаждаться повторной полезностью кода.
Ответ 4
Вы также можете использовать:
в вашем xml:
android:background="@null"
или в коде:
buttonVariable.setBackgroundColor(Color.TRANSPARENT);
Ответ 5
Добавьте это в свой Xml - android:background="@android:color/transparent"
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Button"
android:background="@android:color/transparent"
android:textStyle="bold"/>
Ответ 6
Я использовал
btn.setBackgroundColor(Color.TRANSPARENT);
и
android:background="@android:color/transparent"
Ответ 7
Вы можете добиться этого, установив цвет альфа-канала.
Цветовая схема выглядит так: #AARRGGBB там A обозначает альфа-канал (прозрачность), R обозначает красный, G для зеленого и B для синего.
Ответ 8
При нажатии на кнопку цвет фона используется как transparent(light gray)
.
ButtonName.setOnClickListener()
В приведенном выше методе вы устанавливаете цвет фона кнопки.
Ответ 9
код:
button.setVisibility(View.INVISIBLE);
Xml:
android:background="@android:color/transparent"
Ответ 10
Селекторы работают только для чертежей, а не для стилей. Ссылка
Сначала, чтобы сделать прозрачный фон кнопки, используйте следующий атрибут, так как это не повлияет на анимацию дизайна материала:
style="?attr/buttonBarButtonStyle"
Есть много, чтобы стиль вашей кнопки. Проверьте этот учебник вне.
Второй, чтобы сделать текст полужирным при нажатии, используйте этот Java-код:
btn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
// When the user clicks the Button
case MotionEvent.ACTION_DOWN:
btn.setTypeface(Typeface.DEFAULT_BOLD);
break;
// When the user releases the Button
case MotionEvent.ACTION_UP:
btn.setTypeface(Typeface.DEFAULT);
break;
}
return false;
}
});
Ответ 11
Я достиг этого с помощью XML с андроидом: background = "@android: color/transparent"