Android - 如何在GridView项目上获得涟漪效应?

时间:2015-06-04 13:46:06

标签: android gridview material-design

我使用GridView实现了图库。网格项的布局:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:descendantFocusability="blocksDescendants" >

    <ImageView
        android:id="@+id/media_item"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:contentDescription="@string/thumbnail_for_image"
        android:scaleType="centerCrop" />

    <View
        android:id="@+id/overlay_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="?attr/selectableItemBackground" />
</FrameLayout>

我的目标是在触摸网格项时获得这种漂亮的材质波纹效果。 不幸的是,我无法找到解决问题的纯解决方案。 所以我提出使用this,正如作者所说,解决方法 - 在主 ImageView 之上添加叠加查看,并将背景设置为

?attr/selectableItemBackground

将它放到ImageView的背景或父FrameLayout背景中不起作用。

我敢肯定,必须有更好的方法来处理它。

2 个答案:

答案 0 :(得分:9)

GridView中的

android:drawSelectorOnTop="true"完成了这个技巧

答案 1 :(得分:1)

如果你想在棒棒糖前版本中支持这种涟漪,我建议你使用像The ones here这样的涟漪库。我想使用?attr/selectableItemBackground不会让你对前L型机器人产生涟漪。