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

时间:2017-11-23 05:57:32

标签: android css android-layout android-selector

您好我在android中设计此页面(仅限样式)  enter image description here。 前3个按钮的设计采用了this的参考。

但是我现在捐赠的按钮就像这样透明了 enter image description here

以及click事件(statepreseed =“true”)也是透明的  enter image description here

这是我的捐赠按钮背景代码

 <?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>

如果有人有解决方案。请帮助

2 个答案:

答案 0 :(得分:1)

您正在使用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%的不透明度。这就是您可以在图像中间看到背景颜色的原因。

答案 1 :(得分:0)

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

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

输出如下所示。

Output