复制粘贴自 androidcookbook.com 上“Adrián Santalla”撰写的食谱:
https ://www.androidcookbook.com/Recipe.seam?recipeId=3307
1. 创建一个表示按钮状态的 XML 文件
在drawable中创建一个名为'button.xml'的xml来命名按钮状态:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="false"
android:drawable="@drawable/button_disabled" />
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/button_pressed" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/button_focused" />
<item
android:state_enabled="true"
android:drawable="@drawable/button_enabled" />
</selector>
2. 创建代表每个按钮状态的 XML 文件
为四种按钮状态中的每一种创建一个 xml 文件。所有这些都应该在drawables文件夹下。让我们按照 button.xml 文件中设置的名称进行操作。
button_enabled.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#00CCFF"
android:centerColor="#0000CC"
android:endColor="#00CCFF"
android:angle="90"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<stroke
android:width="2dip"
android:color="#FFFFFF" />
<corners android:radius= "8dp" />
</shape>
button_focused.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#F7D358"
android:centerColor="#DF7401"
android:endColor="#F7D358"
android:angle="90"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<stroke
android:width="2dip"
android:color="#FFFFFF" />
<corners android:radius= "8dp" />
</shape>
button_pressed.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#0000CC"
android:centerColor="#00CCFF"
android:endColor="#0000CC"
android:angle="90"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<stroke
android:width="2dip"
android:color="#FFFFFF" />
<corners android:radius= "8dp" />
</shape>
button_disabled.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#F2F2F2"
android:centerColor="#A4A4A4"
android:endColor="#F2F2F2"
android:angle="90"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<stroke
android:width="2dip"
android:color="#FFFFFF" />
<corners android:radius= "8dp" />
</shape>
3. 创建代表按钮样式的 XML 文件
创建上述文件后,就该创建应用程序按钮样式了。现在,您需要创建一个名为 styles.xml 的新 XML 文件(如果您还没有),您可以在其中将更多自定义样式包含到 de values 目录中。
该文件将包含您的应用程序的新按钮样式。您需要在其中设置新的按钮样式功能。请注意,其中一个功能,即新样式的背景,应通过对第一步中创建的按钮 (button.xml) 可绘制对象的引用进行设置。要引用新的按钮样式,我们使用 name 属性。
下面的示例显示了 styles.xml 文件的内容:
<resources>
<style name="button" parent="@android:style/Widget.Button">
<item name="android:gravity">center_vertical|center_horizontal</item>
<item name="android:textColor">#FFFFFFFF</item>
<item name="android:shadowColor">#FF000000</item>
<item name="android:shadowDx">0</item>
<item name="android:shadowDy">-1</item>
<item name="android:shadowRadius">0.2</item>
<item name="android:textSize">16dip</item>
<item name="android:textStyle">bold</item>
<item name="android:background">@drawable/button</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>
</resources>
4. 使用您自己的自定义应用程序主题创建 XML
最后,您需要覆盖默认的 Android 按钮样式。为此,您需要在 values 目录中创建一个名为 Themes.xml 的新 XML 文件(如果还没有的话)并覆盖默认的 Android 按钮样式。
以下示例显示了themes.xml 的内容:
<resources>
<style name="YourApplicationTheme" parent="android:style/Theme.NoTitleBar">
<item name="android:buttonStyle">@style/button</item>
</style>
</resources>
当我在寻找自定义按钮时,希望你们能像我一样幸运。享受。