android android-imageview android-textview textview material-design

¿Cómo configurar un efecto dominó en textview o imageview en Android?



android-imageview android-textview (11)

Además de la respuesta de @Bikesh M Annur, asegúrese de actualizar sus bibliotecas de soporte. Anteriormente estaba usando 23.1.1 y no pasó nada. Actualizarlo a 23.3.0 hizo el truco.

Quiero establecer un efecto dominó en la vista de texto y la vista de imagen en Android Studio. ¿Cómo puedo hacerlo?


Además de las respuestas anteriores, se agrega enfoque para evitar la advertencia del editor de IU

android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:focusable="true"


Consulte la respuesta a continuación para conocer el efecto dominó.

ondulación en Textview o view:

android:clickable="true" android:focusable="true" android:foreground="?android:attr/selectableItemBackgroundBorderless"

ondulación en el botón o la vista de imagen:

android:foreground="?android:attr/selectableItemBackgroundBorderless"


En el caso de que la solución bien votada publicada por @Bikesh M Annur ( here ) no funcione para usted, intente usar:

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

Además, cuando use android:clickable="true" agregue android:focusable="true" porque:

" No se puede acceder a un widget que se puede hacer clic pero que no se puede enfocar a través del teclado " .


La mejor manera es usar bibliotecas. This es uno de ellos. Simplemente agregue su dependencia y coloque el siguiente código en xml antes de cada elemento que necesite un efecto dominó:

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


O puede intentar usar esta biblioteca (android 9+): RippleEffect

Integración

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

Uso:

<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>


Puedes usar android-ripple-background

Efecto de inicio

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(); } });

Detener animación:

rippleBackground.stopRippleAnimation();



Si desea que la ondulación esté limitada al tamaño de TextView / ImageView, use:

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

(Creo que se ve mejor)


prueba esto. Esto me funcionó.

android:clickable="true" android:focusable="true" android:background="?android:attr/selectableItemBackground"


<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" />

agregue esto en dibujable

<?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" />

prueba esto.