我有一个按钮。当我按下按钮时,我必须使文本加粗,否则正常。所以我写了粗体和正常样式。

<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 as:

<?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源代码中是如何使用样式的。虽然他们不会在点击按钮时改变文本样式,但有很多关于如何实现你的目标的好主意。

其他回答

我们可以在Button xml中像下面这样使用属性android:background。

android:background="?android:attr/selectableItemBackground"

或者我们可以用风格

风格= " ?android:attr/borderlessButtonStyle”为透明和无阴影的背景。

你也可以使用: 在你的xml中:

android:background="@null"

或者在代码中:

buttonVariable.setBackgroundColor(Color.TRANSPARENT);

将此添加到您的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"/>

步骤1: 在drawable中创建一个新的资源文件并复制粘贴

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <stroke android:color="#fff" android:width="2dp"/>
    <corners android:radius="25dp"/>
    <padding android:right="15dp" android:top="15dp" android:bottom="15dp" android:left="15dp"/>
</shape>

保存为ButtonUI(比如说)

步骤2:将UI应用到按钮xml

<Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="join the crew"
  android:background="@drawable/ButtonUI"
  android:textColor="#fff"/>

您可以通过在xml文件中添加以下属性轻松地做到这一点。这段代码经过了大量的测试。

android:background="@android:color/transparent"