Android 在使用形状xml文件作为背景后按下按钮时不突出显示

Android 在使用形状xml文件作为背景后按下按钮时不突出显示,android,Android,我有一个按钮,上面有一个文本、一个图标,还有一个xml文件,用于定义背景的形状。将背景设置为自定义形状后,按下按钮时,按钮将失去其标准高亮显示。有人能告诉我怎么解决这个问题吗?顺便说一句,我不想使用额外的动画文件 <Button android:id="@+id/btn_top" android:text="Press" android:textColor="#FFFFFF" android:textSize="30sp" android:dra

我有一个按钮,上面有一个文本、一个图标,还有一个xml文件,用于定义背景的形状。将背景设置为自定义形状后,按下按钮时,按钮将失去其标准高亮显示。有人能告诉我怎么解决这个问题吗?顺便说一句,我不想使用额外的动画文件

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

    android:text="Press"
    android:textColor="#FFFFFF"
    android:textSize="30sp"
    android:drawableTop="@drawable/transport"

    android:layout_width="270dp"
    android:layout_height="140dp"
    android:paddingTop="5dp"
    android:background="@drawable/btn_top_shape"
    android:shadowColor="#8F8F8F"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_marginRight="31dp"
    android:layout_below="@+id/imageViewTitle"

    android:layout_centerHorizontal="true" />

下面是定义名为“button\u top\u shape”的按钮形状的文件


尝试此xml文件并进行必要的更改…希望这对您有所帮助

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true">
  <shape>
      <stroke android:width="3dp"
    android:color="#80FFFFFF" />

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

  <gradient android:angle="270"
        android:centerColor="#87CEEB"
        android:endColor="#ffffff"
        android:startColor="#ffffff" />

    </shape>  
</item>

  <item>
   <shape>
       <stroke android:width="3dp"
    android:color="#80FFFFFF" />

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

  <gradient android:angle="270"
        android:centerColor="#87CEEB"
        android:endColor="#87CEEB"
        android:startColor="#87CEEB" />

    </shape>

 </item>
</selector>

按下按钮时高亮显示按钮,然后使用

drawable文件夹中的round.xml

 <?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="3dip" />
                <stroke android:width="1dip" android:color="#5e7974" />
                <gradient android:angle="-90" android:startColor="#e4d46f" android:endColor="#e4d079"  />
            </shape>
        </item>
        <item android:state_focused="true">
            <shape android:shape="rectangle"  >
                <corners android:radius="3dip" />
                <stroke android:width="1dip" android:color="#c7cf2d" />
                <solid android:color="#e9da67"/>
            </shape>
        </item>
        <item >
            <shape android:shape="rectangle"  >
                <corners android:radius="3dip" />
                <stroke android:width="1dip" android:color="#e7d851" />
                <gradient android:angle="-90" android:startColor="#e4d079" android:endColor="#87cf8d" />
            </shape>
        </item>
    </selector>

你需要为你的按钮背景使用选择器资源;因此,你也可以扩展一个AppCompactActivity(目前你的activity类扩展了一个普通的旧activity类),它将突出显示按钮;
 <?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="3dip" />
                <stroke android:width="1dip" android:color="#5e7974" />
                <gradient android:angle="-90" android:startColor="#e4d46f" android:endColor="#e4d079"  />
            </shape>
        </item>
        <item android:state_focused="true">
            <shape android:shape="rectangle"  >
                <corners android:radius="3dip" />
                <stroke android:width="1dip" android:color="#c7cf2d" />
                <solid android:color="#e9da67"/>
            </shape>
        </item>
        <item >
            <shape android:shape="rectangle"  >
                <corners android:radius="3dip" />
                <stroke android:width="1dip" android:color="#e7d851" />
                <gradient android:angle="-90" android:startColor="#e4d079" android:endColor="#87cf8d" />
            </shape>
        </item>
    </selector>
 android:background="@drawable/round"