如何为android的特定背景正常颜色:attr / borderlessButtonStyle按钮

时间:2016-05-07 19:31:05

标签: android

我想知道,我怎样才能将?android:attr/borderlessButtonStyle按钮特定为背景正常颜色?

目前,我有以下按钮。

<Button
    android:id="@+id/buy_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="?attr/shopButtonTextColor"
    style="?android:attr/borderlessButtonStyle"        
    android:textStyle="bold"
    android:text="@string/shop_buy" />

看起来像是

正常

enter image description here

按下(有涟漪效应)

enter image description here

我期待的是

  • 在正常情况下,它有橙色背景。
  • 在按下期间,橙色背景顶部有colorControlHighlight(通常为灰色)颜色波纹覆盖。

我做了以下修改。

<Button
    android:id="@+id/buy_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="?attr/shopButtonTextColor"
    style="?android:attr/borderlessButtonStyle"
    android:background="@color/shop_button_background_color_material_light"
    android:textStyle="bold"
    android:text="@string/shop_buy" />

enter image description here

填充/边距信息似乎消失了。

当我按下它时,之前的纹波选择器就消失了。

我想知道,我如何使用?android:attr/borderlessButtonStyle,但能够实现以下目标?

  • 保留?android:attr/borderlessButtonStyle中的填充/边距。
  • 保留?android:attr/borderlessButtonStyle按钮的圆角(我猜是2dp)行为。
  • 在正常情况下,它有橙色背景。
  • 在按下期间,橙色背景顶部有colorControlHighlight(通常为灰色)颜色波纹覆盖。

1 个答案:

答案 0 :(得分:1)

感谢@Vikram。通过使用以下技术,我能够获得具有所需背景颜色的漂亮的平面按钮效果。

<style name="ShopButton">
    <item name="colorButtonNormal">@color/shop_button_background_color_material_light</item>
    <item name="android:colorButtonNormal">@color/shop_button_background_color_material_light</item>
    <item name="colorControlHighlight">@color/ripple_material_dark</item>
    <item name="android:colorControlHighlight">@color/ripple_material_dark</item>
    <item name="android:textColor">@color/shop_button_text_color_material_light</item>
    <item name="android:textSize">16sp</item>
    <item name="android:textStyle">bold</item>
</style>

<Button
    android:id="@+id/buy_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="?attr/buttonStyle"
    android:theme="@style/ShopButton"
    android:stateListAnimator="@null"
    android:text="@string/shop_buy" />

看起来如下

enter image description here