将默认按钮颜色从灰色更改为白色android

时间:2016-12-14 08:21:23

标签: android button

我有一张cardview。按钮默认颜色为灰色。我希望它看起来像右侧图像(像祝福)。已经创建了这个正确的设置backgroundtint为白色,但在旧版本中,它仍显示为灰色。enter image description here

 <android.support.v7.widget.CardView
        android:id="@+id/programm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        card_view:cardCornerRadius="2dp"
        android:layout_alignParentBottom="true"
        android:layout_margin="6dp"
        card_view:cardElevation="6dp"
        android:layout_gravity="end|right"
        card_view:cardBackgroundColor="@color/hotpink"
        android:onClick="openNextActivity">
        <Button
            android:layout_width="wrap_content"
            android:drawable="@color/white"
            android:layout_height="wrap_content"
            android:text="@string/Programme"
            android:textColor="@color/hotpink"
            android:onClick="openNextActivity"
            />
    </android.support.v7.widget.CardView>

如果我将按钮的背景更改为白色,则整个颜色变为白色:

 <android.support.v7.widget.CardView
        android:id="@+id/programm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        card_view:cardCornerRadius="2dp"
        android:layout_alignParentBottom="true"
        android:layout_margin="6dp"
        card_view:cardElevation="6dp"
        android:layout_gravity="end|right"
        card_view:cardBackgroundColor="@color/hotpink"
        android:onClick="openNextActivity">
        <Button
            android:layout_width="wrap_content"
            android:drawable="@color/white"
            android:background="@color/white"
            android:layout_height="wrap_content"
            android:text="@string/Programme"
            android:textColor="@color/hotpink"
            android:onClick="openNextActivity"
            />
</android.support.v7.widget.CardView>

enter image description here

根据谷歌搜索,这个默认的灰色是在某个主题中设置的。我可能需要覆盖一些主题并设置一些属性。但我不确定我需要改变什么。

4 个答案:

答案 0 :(得分:2)

试试这个:

<Button
    android:layout_width="wrap_content"
    android:text="Button Text"
    android:theme="@style/myButtonTheme"
    android:layout_height="wrap_content"/>

myButtonTheme文件中设置此styles.xml

<style name="myButtonTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:textColorPrimary">@color/white</item>
    <item name="colorButtonNormal">#5552f1</item>
</style>

[在colorButtonNormal]

中设置所需的背景颜色

输出:

enter image description here

答案 1 :(得分:0)

我没有测试过这种情况,但我认为这样的事情可以奏效 您可以在drawable目录中创建background.xml并将其设置为背景

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">

<item>
    <shape>
        <!-- set the shadow color here -->
        <stroke
            android:width="3dp"
            android:color="#77000000" />

        <!-- setting the thickness of shadow (positive value will give shadow on that side) -->

        <padding
            android:bottom="3dp"
            android:left="1dp"
            android:right="3dp"
            android:top="1dp" />

        <corners android:radius="4dp" />
    </shape>
</item>

<!-- Background -->

<item>
    <shape>
        <solid android:color="#fff" />
        <corners android:radius="4dp" />
    </shape>
</item>

你可以尝试的事情就是你可以设置你想要的颜色的阴影颜色或我想到的其他东西将阴影颜色的不透明度设置为零,这样就可以了透明,您可以通过阴影的填充设置其厚度

希望这会有所帮助

答案 2 :(得分:0)

在你的风格中定义:

<style name="BlueButtonTheme" parent="@style/AppTheme">
    <item name="android:buttonStyle">@style/Widget.AppCompat.Button.Colored</item>

    <item name="colorButtonNormal">@color/disabledButtonColor</item>
    <item name="colorAccent">@color/enabledButtonColor</item>
    <item name="android:disabledAlpha">1</item>
    <!-- button text color-->

    <item name="android:textColor">@drawable/colored_button_text_color</item>
</style>

在你的布局xml文件中:

  <Button
    android:id="@+id/buttonId"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:enabled="false"

    android:theme="@style/BlueWhiteButtonTheme"
    android:text="@string/buttonLabel"/>

答案 3 :(得分:-1)

只需在布局中设置按钮的背景

即可
<Button
android:background="@android:color:white"
</Button>