安卓波纹效果叠加图片查看GIF

问题描述 投票:1回答:3

我有一个列表项在回收视图中,我想让元素上都有波纹效果--目前我的GIF是重叠波纹的。我不知道如何解决这个问题,已经研究后试过很多方法,但都没有效果。

example of the non working ripple effect

下面是具体的XML文件,我在此基础上建立每个列表项。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@drawable/selector"
android:clickable="false">

<pl.droidsonroids.gif.GifTextView
    android:layout_width="84dp"
    android:layout_height="84dp"
    android:paddingTop="3dp"
    android:paddingBottom="3dp"
    android:paddingRight="1dp"
    android:paddingLeft="1dp"
    android:background="@drawable/a_present_for_you"
    />

<TextView
    android:id="@+id/textView"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textColor="@color/black"
    android:textSize="16sp"
    android:gravity="center_vertical"
    android:drawableRight="@drawable/ic_lock_open_blue_24dp"
    android:drawablePadding="16dp">
</TextView>

</LinearLayout>

有什么好办法吗?

android imageview ripple
3个回答
5
投票

如何使用 FrameLayout 将这两个元素用 FrameLayout 而不是 LinearLayout,并设置 android:foreground 使用你的自定义选择器来选择这个布局的。

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:foreground="@drawable/selector">

<pl.droidsonroids.gif.GifTextView
android:layout_width="84dp"
android:layout_height="84dp"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:paddingRight="1dp"
android:paddingLeft="1dp"
android:background="@drawable/a_present_for_you"
/>

<TextView
android:id="@+id/textView"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="@color/black"
android:textSize="16sp"
android:gravity="center_vertical"
android:drawableRight="@drawable/ic_lock_open_blue_24dp"
android:drawablePadding="16dp">
</TextView>

</FrameLayout>

1
投票

只需使用以下属性:-

android:background="?attr/selectableItemBackground"对于简单的波纹效果,使用以下属性:-对于圆形波纹效果,使用 android:background="?attr/selectableItemBackgroundBorderless"

内的主根。


0
投票

涟漪效果没有传播,因为你在同一个LinearLayout中有两个不同的背景。你可以尝试将波纹效果设置为整个LinearLayout。

© www.soinside.com 2019 - 2024. All rights reserved.