如何在Android上设置textview或imageview的连锁反应?

我想在Android Studio中为textview和imageview设置一个连锁效果。 我该怎么做?

参考: http : //developer.android.com/training/material/animations.html ,

http://wiki.workassis.com/category/android/android-xml/

<TextView . . android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" /> <ImageView . . . android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" /> 

如果你想把纹波限制在TextView / ImageView的大小上:

 <TextView android:background="?attr/selectableItemBackground" android:clickable="true"/> 

(我认为它看起来更好)

你可以使用android-ripple-background

启动效果

 final RippleBackground rippleBackground=(RippleBackground)findViewById(R.id.content); ImageView imageView=(ImageView)findViewById(R.id.centerImage); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { rippleBackground.startRippleAnimation(); } }); 

停止animation:

 rippleBackground.stopRippleAnimation(); 
 <TextView android:id="@+id/txt_banner" android:layout_width="match_parent" android:text="@string/banner" android:gravity="center|left" android:layout_below="@+id/title" android:background="@drawable/ripple_effect" android:paddingLeft="15dp" android:textSize="15sp" android:layout_height="45dp" /> 

将其添加到drawable中

 <?xml version="1.0" encoding="utf-8"?> <!--this ribble animation only working for >= android version 21--> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/click_efect" /> 

尝试这个。

或者你可以尝试使用这个库(Android 9 +): RippleEffect

积分

 dependencies { compile 'com.github.traex.rippleeffect:library:1.3' } 

用法:

 <com.andexert.library.RippleView android:id="@+id/more" android:layout_width="?android:actionBarSize" android:layout_height="?android:actionBarSize" android:layout_toLeftOf="@+id/more2" android:layout_margin="5dp" rv_centered="true"> <ImageView android:layout_width="?android:actionBarSize" android:layout_height="?android:actionBarSize" android:src="@android:drawable/ic_menu_edit" android:layout_centerInParent="true" android:padding="10dp" android:background="@android:color/holo_blue_dark"/> </com.andexert.library.RippleView> 

最好的方法是使用库。 这是其中之一。 只需添加它的依赖关系,并在每个需要涟漪效应的元素之前将下面的代码放在xml中:

 <com.balysv.materialripple.MaterialRippleLayout android:id="@+id/ripple" android:layout_width="match_parent" android:layout_height="wrap_content"> 

除@Bikesh M Annur的回答外,请务必更新您的支持库。 以前我使用23.1.1,没有发生任何事情。 更新到23.3.0做了伎俩。