Ripple effect for lollipop views

一个人想着一个人 提交于 2019-12-03 05:49:21

问题


I have been developing an app for Lollipop (API 21).

When I change the Button color to something, the ripple effect doesn't works.

I found some third party libraries for the ripple effect, but I want to do this with standard API.

This answer didn't help either.

XML:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Button"
    android:id="@+id/button"
    android:layout_below="@+id/textView"
    android:background="@android:color/holo_blue_bright"
    android:layout_alignParentStart="true"
    android:layout_marginTop="76dp"
   />

回答1:


You have to set your button's background to a RippleDrawable which you can define in XML. (I'll name it holo_blue_ripple.xml)

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@android:color/white"> <!-- ripple color -->

    <item android:drawable="@android:color/holo_blue_bright"/> <!-- normal color -->

</ripple>

Then reference it with android:background="@drawable/holo_blue_ripple".




回答2:


Try this:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="?attr/selectableItemBackground"
    ...
 />

Based on this tutorial and the official docs




回答3:


Also ?attr/selectableItemBackgroundBorderless canbe used for circular ripple effect.




回答4:


Try this attribute

android:background="?attr/selectableItemBackground"

This is the simplest way to show ripple effect in your view/layout.



来源:https://stackoverflow.com/questions/27070269/ripple-effect-for-lollipop-views

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!