如何添加涟漪效果并在android中的按钮上有自定义背景?

时间:2016-10-09 09:00:27

标签: android xml

请告诉我如何同时实现这两个目标,我已经解决了许多问题,但他们并没有专门处理我的问题。

我想在我的按钮上产生涟漪效果,并且它应该是圆形的并且具有背景颜色。此外,我应该能够控制涟漪效果的颜色。

我尝试了下面列出的一些事情。

第一种方法:我尝试在style="@style/AppTheme"标记中设置<Button>。这给了我涟漪效果和背景颜色(在样式中使用<item name="colorButtonNormal">#500347</item>),但按钮没有圆角。

为了实现圆形,我在android:background="@drawable/button_bg"标记中提供了<Button>。这使得按钮变圆并且还实现了背景颜色,但是波纹效果消失了。

第二种方法:我尝试了使用选择器。  1.创建了button_background.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:state_focused="true"
        android:drawable="@drawable/button_bg"/>

    <item
        android:state_pressed="true"
        android:drawable="@drawable/ripple_effect"/>

    <item 
        android:drawable="@drawable/ripple_effect"/>

</selector>
  1. button_bg.xml中按钮的圆形背景:

      <shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid
        android:color="#500347" />
    
    <corners
        android:radius="10dip" />
    
    <padding
        android:bottom="0dip"
        android:left="0dip"
        android:right="0dip"
        android:top="0dip" />
    

  2. ripple_effet.xml:

        <ripple xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:tools="http://schemas.android.com/tools"
      android:color="@android:color/holo_green_dark"
       tools:targetApi="lollipop">
    
    
        <item android:id="@android:id/mask">
    
    <shape android:shape="rectangle">
    
        <solid android:color="@android:color/holo_green_dark" />
    
        <corners android:radius="10dip" />
    
    </shape>
    

    1. <Button>标记中 android:background="@drawable/button_bg"
    2. 使用此方法按钮在按下时会变为白色,返回背景色。

      请告诉我怎么做。

2 个答案:

答案 0 :(得分:1)

在这里找到我的答案。 https://github.com/traex/RippleEffect/blob/master/README.md

但如果还有其他更简单的方法,欢迎提供更多答案

答案 1 :(得分:0)

我是这样做的: -

  1. android:background="@drawable/ad_action_view_bg"我认为。 //背景是Ripple drawable
  2. 然后我将android - foreground设置为所需的颜色。