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