按钮的自定义背景设置不正确

Custom background of button is not setting properly

您好,我正在 android 中设计此页面(仅限样式) 。 前 3 个按钮是参考 this.

设计的

但是我设计的DONATE NOW按钮变成了这样透明

还有点击事件(statepreseed="true")也是透明的like .

这是我的“立即捐赠”按钮背景代码

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape android:shape="rectangle" >
            <corners
                android:radius="0dp" />
           <solid android:color="#33e7d283"></solid>
            <padding
                android:left="0dp"
                android:top="0dp"
                android:right="0dp"
                android:bottom="0dp"
                />
            <stroke
                android:width="4dp"
                android:color="#00e9ca30"
                />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle" >
            <corners
                android:radius="0dp"
                />

            <gradient
                android:angle="225"
                android:centerX="23%"
                android:centerColor="#33f4c40e"
                android:startColor="#ffdab605"
                android:endColor="#ffdab605"
                android:type="linear"
                />
            <padding
                android:left="0dp"
                android:top="0dp"
                android:right="0dp"
                android:bottom="0dp"
                />
        </shape>
    </item>

</selector>

如果有人solution.please帮助

给你.. 您的按钮元素应如下所示。

<Button
android:id="@+id/angry_btn"

android:text="Button"
android:textColor="#FFFFFF"
android:textSize="30sp"

android:layout_width="270dp"
android:layout_height="60dp"
android:background="@drawable/buttonshape"
android:shadowColor="#474747"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="3"
/>

ButtonShape.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<corners
android:radius="14dp"
/>
<gradient
android:angle="45"
android:centerX="65%"
android:centerColor="#F5FAF9"
android:startColor="#F39C12"
android:endColor="##F39C12"
android:type="linear"
/>
<size
android:width="270dp"
android:height="60dp"
/>
<stroke
android:width="3dp"
android:color="#878787"
/>
</shape>

输出如下所示。

您使用的是 ARGB 而不是 RGB。因此,您正在创建具有透明背景的图像。

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

    <gradient
        android:angle="225"
        android:centerColor="#e7d283"
        android:centerX="23%"
        android:endColor="#ffdab605"
        android:startColor="#ffdab605"
        android:type="linear" />
    <padding
        android:bottom="0dp"
        android:left="0dp"
        android:right="0dp"
        android:top="0dp" />
</shape>

使用 e7d283ffe7d283 颜色代码代替 33e7d283 可能会解决黄色图像背景的问题。

使用 33 作为 alpha 意味着您只为中心颜色提供 20% 的不透明度。这就是您可以在图像中间看到背景颜色的原因。