我有一张cardview。按钮默认颜色为灰色。我希望它看起来像右侧图像(像祝福)。已经创建了这个正确的设置backgroundtint为白色,但在旧版本中,它仍显示为灰色。
<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>
根据谷歌搜索,这个默认的灰色是在某个主题中设置的。我可能需要覆盖一些主题并设置一些属性。但我不确定我需要改变什么。
答案 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
]
答案 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>