是否可以自定义appcompat-v7的按钮颜色?默认按钮是灰色的,我想在整个应用程序中将它们更改为绿色。将android:background设置为drawable可以删除弯曲的边缘。
答案 0 :(得分:4)
由于您明确询问如何使用appcompat-v7
- 这是推荐的方式。
首先:没有必要创建一个新的drawable。您只需使用具有colorButtonNormal
属性的主题即可更改按钮的颜色。
举个例子:
<强> styles.xml 强>
<style name="ThemeButton">
<item name="colorButtonNormal">#009688</item>
</style>
<强> layout.xml 强>
<!-- other layout elements -->
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="My Button"
android:textColor="@android:color/white"
android:theme="@style/ThemeButton" />
<强>结果:强>
这样,当按下按钮时,您将保持标准高度和波纹效果,而使用自定义可绘制时则不然。 (至少如果你没有使用选择器)
答案 1 :(得分:2)
为此,您需要在应用中创建自定义布局。在drawable文件夹中,创建一个名为let_bapton.xml的xml文件。
添加以下代码:
Presentation1
保存xml文件,并在您定义按钮的activity_main.xml文件中,添加custom_button作为背景。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<stroke
android:width="0dp"
android:color="#000000" />
<solid
android:color="ColourCode of the colour you Want to give"
/>
<corners
android:radius="0dp"
android:bottomLeftRadius="0dp"
android:bottomRightRadius="0dp"
android:topLeftRadius="0dp"
android:topRightRadius="0dp"/>
</shape>
</item>
</selector>
现在可以使用
答案 2 :(得分:1)
在你的drawable目录中创建一个名为“shape_btn.xml”的新文件,将android:color改为你喜欢的颜色:
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/abc_button_inset_horizontal_material"
android:insetTop="@dimen/abc_button_inset_vertical_material"
android:insetRight="@dimen/abc_button_inset_horizontal_material"
android:insetBottom="@dimen/abc_button_inset_vertical_material">
<shape android:shape="rectangle">
<corners android:radius="@dimen/abc_control_corner_material" />
<solid android:color="@android:color/black" />
<padding android:left="@dimen/abc_button_padding_horizontal_material"
android:top="@dimen/abc_button_padding_vertical_material"
android:right="@dimen/abc_button_padding_horizontal_material"
android:bottom="@dimen/abc_button_padding_vertical_material" />
</shape>
</inset>
并设置为按钮背景:
<Button
...
android:background="@drawable/shape_btn"
/>
如果您想将其应用于应用中的所有按钮,请更改您的主题:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:buttonStyle">@style/MyButtonStyle</item>
</style>
<style name="MyButtonStyle" parent="Widget.AppCompat.Button" >
<item name="android:background">@drawable/shape_btn</item>
</style>