如何在整个矩形中传播涟漪效果(适用于Android 6)

时间:2016-11-08 17:13:09

标签: android

目前,我想为我的矩形卡产生适当的连锁效果。

我可以实现的涟漪效应是一个小圆圈,只在一个小点击区域内传播。

在Android 6

捕获的视频

https://www.youtube.com/watch?v=3zeBFqVPS38

但是,我知道在Android 5中,使用相同的代码集,纹波可以覆盖整个矩形区域。

在Android 5

捕获的视频

https://www.youtube.com/watch?v=wEkb-7TDI7k

如何在整个矩形卡中传播涟漪效应?或者,我不应该在Android 6下有这个期望吗?

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:stateListAnimator="@anim/lift_up"
    android:background="?attr/newsRowLayoutSelector"
    android:clickable="true"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginTop="5dp"
    android:layout_marginBottom="5dp"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingBottom="5dp"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/title_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:textColor="?attr/newsTitleTextViewSelector"
        android:duplicateParentState="true"
        android:text="TextView" />

    <TextView
        android:id="@+id/description_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="?attr/newsDescriptionTextViewColor"
        android:textSize="14sp"
        android:layout_marginTop="2dp"
        android:layout_marginBottom="2dp"
        android:text="TextView" />

    <TextView
        android:id="@+id/date_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:textColor="?attr/newsDateTextViewColor"
        android:textSize="12sp"
        android:text="TextView" />
</LinearLayout>

背景选择器(?attr / newsRowLayoutSelector)

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/news_card_ripple_material_light">
    <item android:drawable="@drawable/news_card_material_light" />
</ripple>

@绘制/ news_card_material_light

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid android:color="@color/news_card_material_light" />
</shape>

这些是使用的颜色。

<color name="news_card_material_light">#ffffffff</color>
<color name="news_card_ripple_material_light">#ffffcc80</color>

谢谢。

1 个答案:

答案 0 :(得分:0)

这是Android M及以上版本的默认行为。 你可以在Google现在的卡片中看到这个例子