Android 如何在按钮和单击效果上添加边框?

Android 如何在按钮和单击效果上添加边框?,android,android-layout,android-drawable,Android,Android Layout,Android Drawable,我有一个按钮XML,它有透明的背景,当点击时,颜色会改变,所以它会显示“点击效果” 可绘制XML: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- press--> <item android:drawable="@android:color/transpar

我有一个按钮XML,它有透明的背景,当点击时,颜色会改变,所以它会显示“点击效果”

可绘制XML:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- press-->
    <item android:drawable="@android:color/transparent" android:state_pressed="false" />

    <!-- focused-->
    <item style="@style/AppTheme" android:drawable="@color/color_primary" android:state_pressed="true" />

    <!-- normal-->
    <item android:drawable="@android:color/transparent" />

</selector>


我的问题是,如何在这个按钮上设置边框?或者一个XML示例,这样您就得到了相同的结果。谢谢大家!

创建一个类似于此的可绘制的selected.xml文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
             android:shape="rectangle">
    <solid android:color="#ff0000"/>
    <stroke
        android:width="1dp"
        android:color="#00ff00" />
</shape>

那就换这一行

<item 
     style="@style/AppTheme" 
     android:drawable="@color/color_primary" 
     android:state_pressed="true" />

<item 
     style="@style/AppTheme" 
     android:drawable="@drawable/selected" 
     android:state_pressed="true" />


实体是背景色,边框是笔划,您可以创建在选择器的不同状态下使用的可绘制图形,您可以执行以下操作: 1.首先创建如下所示的可绘制文件:

<shape android:shape="rectangle">
     <!--apply button background transparent, full opacity-->
     <solid android:color="#00ffffff"/>
     <!--make button border solid color, nontransparent-->
     <stroke android:color="#stroke color" android:width="2dp"/>
     <corners android:radius="2dp"/>
</shape>

然后在提供的代码中替换以下行:

<!-- press-->
<item android:drawable="path to above drawable" android:state_pressed="false" />

<!-- focused-->
<item style="@style/AppTheme" android:drawable="@color/color_primary" android:state_pressed="true" />

<!-- normal-->
<item android:drawable="path to above drawable" />

作为


这不起作用,因为我有几个按钮状态。
<!-- press-->
<item android:drawable="path to above drawable" android:state_pressed="false" />

<!-- focused-->
<item style="@style/AppTheme" android:drawable="@color/color_primary" android:state_pressed="true" />

<!-- normal-->
<item android:drawable="path to above drawable" />