Android 如何使我的应用程序中的按钮透明且可见

Android 如何使我的应用程序中的按钮透明且可见,android,button,transparency,Android,Button,Transparency,我希望我的按钮是透明的,因为我在活动上有一个图像作为背景。 如果按钮不是透明的,则这些按钮覆盖了图像,并且图像背景似乎没有用处 如果我使用android:background=“@android:color/transparent”,它会使我的按钮除了上面的文本之外完全不可见。所以,我需要按钮是透明的,只要有一个按钮就可以看到。代码片段将不胜感激 <Button android:id="@+id/new_button" android:layout_width="fill_parent"

我希望我的按钮是透明的,因为我在活动上有一个图像作为背景。 如果按钮不是透明的,则这些按钮覆盖了图像,并且图像背景似乎没有用处

如果我使用
android:background=“@android:color/transparent”
,它会使我的按钮除了上面的文本之外完全不可见。所以,我需要按钮是透明的,只要有一个按钮就可以看到。代码片段将不胜感激

<Button
android:id="@+id/new_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"  //this line makes the button completely invisible.
android:text="@string/label" />

为按钮应用选择器,如下所示

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true"><shape>
        <solid
            android:color="@color/color_1_end" />

        <stroke 
            android:width="1dp"
            android:color="@android:color/transparent" /> // transparent patametr

        <corners 
            android:radius="4dp" />

        <padding 
            android:bottom="10dp" 
            android:left="10dp" 
            android:right="10dp" 
            android:top="10dp" />
    </shape></item>
<item>
    <shape>
        <gradient android:angle="270"
             android:endColor="@color/color_1_start" 
             android:startColor="@color/color_1_end" /> // maybe transparent 

        <stroke 
            android:width="1dp" 
            android:color="@color/color_1_start" /> //maybe transparent 

        <corners android:radius="4dp" />

        <padding android:bottom="10dp" 
            android:left="10dp" 
            android:right="10dp" 
            android:top="10dp" />
    </shape>

    </item>

//透明板
//也许是透明的
//也许是透明的


为您修改此=)

为按钮应用边框



我已经硬编码了颜色,但您应该将其存储在colors.xml中


修改前两个字符A0,以调整所需的透明度,最后6个字符调整所需的颜色。

如果只需要白色边框和按钮中的文本/图标,但按钮背景透明,则创建以下可绘制(我将其命名为button_border.xml):


并将其用作按钮的背景:

<Button
    .
    .
    .
    android:background="@drawable/button_border"
    />


我想有一种更优雅的方式来处理主题,但我还没走那么远。在可绘制边框的按钮中,您可以添加圆角等…

只需尝试使用以下java代码即可

<br/>
    button.getBackground().setAlpha(int);<br/>
correct range of input parameter is between 1 and 255 and the '1' is more transparent.
common pitfall is using:<br/>
    button.setAlpha(float);<br/>

button.getBackground().setAlpha(int)
输入参数的正确范围在1和255之间,“1”更透明。 常见的陷阱是使用:
按钮。setAlpha(浮动)

这使得所有的按钮都是透明的。

我不明白。您的意思是您没有通过按钮看到您在活动中设置的图像吗?你是说“部分透明”吗?@Simon是的,我希望按钮部分透明。所以,它应该是可见的,有一个按钮。
android:background="#A0FFFFFF"
<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <stroke
                android:color="@android:color/white"
                android:width="1dp" />
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>
</selector>
<Button
    .
    .
    .
    android:background="@drawable/button_border"
    />
<br/>
    button.getBackground().setAlpha(int);<br/>
correct range of input parameter is between 1 and 255 and the '1' is more transparent.
common pitfall is using:<br/>
    button.setAlpha(float);<br/>