创建自定义按钮并使其成为默认样式
Create a custom button and make it the default style
我想要一个自定义按钮外观,所以我按照这里的答案
- 我为 app/res/drawable
中不同状态的形状创建了 xml 个文件
- 我为选择器创建了一个 xml 文件,列出了 app/res/drawable
中所有州的文件
这有效,如果我更改 属性 以引用我的自定义按钮,我可以创建一个外观正确的按钮。
现在我想将其设置为默认值,这样我在布局上添加的每个按钮都会自动具有漂亮的外观。所以我将文件 app/res/values/style.xml 更改为这样(引用 MyButton 的行是我添加的行)
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="buttonStyle">@style/MyButton</item>
</style>
<style name="MyButton" parent="Widget.AppCompat.Button">
<item name="android:background">@drawable/my_button</item>
<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:focusable">true</item>
<item name="android:clickable">true</item>
</style>
没用。我必须手动将 style="@style/MyButton"
添加到每个按钮才能使其工作。我错过了什么?
您需要在 AppTheme 中进行以下更改 -
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
..............
<item name="android:buttonStyle">@style/MyButton</item>
</style>
就是这样。快乐编码!!
确保您的 Activity
使用的是 AppTheme
主题。
在 activity android:name=".MainActivity
int manifest.
部分添加 android:theme="@style/AppTheme"
我想要一个自定义按钮外观,所以我按照这里的答案
- 我为 app/res/drawable 中不同状态的形状创建了 xml 个文件
- 我为选择器创建了一个 xml 文件,列出了 app/res/drawable 中所有州的文件
这有效,如果我更改 属性 以引用我的自定义按钮,我可以创建一个外观正确的按钮。
现在我想将其设置为默认值,这样我在布局上添加的每个按钮都会自动具有漂亮的外观。所以我将文件 app/res/values/style.xml 更改为这样(引用 MyButton 的行是我添加的行)
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="buttonStyle">@style/MyButton</item>
</style>
<style name="MyButton" parent="Widget.AppCompat.Button">
<item name="android:background">@drawable/my_button</item>
<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:focusable">true</item>
<item name="android:clickable">true</item>
</style>
没用。我必须手动将 style="@style/MyButton"
添加到每个按钮才能使其工作。我错过了什么?
您需要在 AppTheme 中进行以下更改 -
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
..............
<item name="android:buttonStyle">@style/MyButton</item>
</style>
就是这样。快乐编码!!
确保您的 Activity
使用的是 AppTheme
主题。
在 activity android:name=".MainActivity
int manifest.
android:theme="@style/AppTheme"