View Shaker es una animación en la que la interfaz de usuario de la pantalla vibra durante un período de tiempo limitado. Esto se puede implementar en todo el diseño o en algún widget en particular. Es un efecto muy común que usan los desarrolladores, especialmente para mostrar credenciales incorrectas.
View Shaker nos ayuda a animar los widgets. Se le pueden agregar varios efectos.
Efectos
- Atencion
- Flash, Pulse, RubberBand, Shake, Swing, Wobble, Bounce, Tada, StandUp, Wave
- Bisagra, RollIn, RollOut, Aterrizaje, TakeOff, DropOut
- Rebote hacia adentro, Rebote hacia abajo, Rebote hacia la izquierda, Rebote hacia la derecha, Rebote hacia arriba
- Fundido de entrada, Fundido de entrada hacia arriba, Fundido de entrada hacia abajo, Fundido de entrada hacia la izquierda, Fundido de entrada hacia la derecha Fundido de salida, Fundido de salida hacia abajo, Fundido de salida hacia la izquierda, Fundido de salida hacia la
derecha, Fundido de salida hacia arriba
- FlipInX, FlipOutX, FlipOutY
- Girar hacia adentro, Girar hacia abajo a la izquierda, Girar hacia adentro hacia abajo a la derecha, Girar hacia adentro hacia arriba a la
izquierda, Girar hacia adentro hacia arriba a la derecha
- SlideInLeft, SlideInRight, SlideInUp, SlideInDown
SlideOutLeft, SlideOutRight, SlideOutUp, SlideOutDown
- ZoomIn, ZoomInDown, ZoomInLeft, ZoomInRight, ZoomInUp
ZoomOut, ZoomOutDown, ZoomOutLeft, ZoomOutRight, ZoomOutUp
En este artículo veremos un ejemplo de cómo agregar dicho efecto en una aplicación.
En este ejemplo, un usuario desea iniciar sesión en el portal GeeksforGeeks . El usuario ingresa la contraseña incorrecta y luego hace clic en el botón de inicio de sesión. Luego, podemos animar nuestra vista para que la aplicación sea más receptiva, usando View Shaker.
Acercarse
- Agregue la biblioteca de soporte en el archivo build.gradle y agregue la dependencia en la sección de dependencias. Esta biblioteca tiene varios efectos de animación descritos anteriormente. Ayuda a hacer que nuestra aplicación sea más receptiva y dinámica.
dependencies {
implementation 'com.daimajia.easing:library:2.0@aar'
implementation 'com.daimajia.androidanimations:library:2.3@aar'
}
- Ahora agregue el siguiente código en el archivo activity_main.xml . Este código agrega una vista de texto , dos textos de edición y un botón en activity_main.
actividad_principal.xml
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
LinearLayout
android:layout_width
=
"match_parent"
android:layout_height
=
"match_parent"
tools:context
=
".MainActivity"
android:orientation
=
"vertical"
>
<
TextView
android:textStyle
=
"bold"
android:textSize
=
"24sp"
android:textColor
=
"#219806"
android:layout_margin
=
"15dp"
android:layout_gravity
=
"center"
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:text
=
"GeeksForGeeks"
/>
<
EditText
android:id
=
"@+id/editText1"
android:layout_margin
=
"15dp"
android:layout_width
=
"match_parent"
android:layout_height
=
"wrap_content"
android:hint
=
"Enter ID"
/>
<
EditText
android:id
=
"@+id/editText2"
android:layout_margin
=
"15dp"
android:inputType
=
"textPassword"
android:layout_width
=
"match_parent"
android:layout_height
=
"wrap_content"
android:hint
=
"Enter Password"
/>
<
Button
android:id
=
"@+id/button"
android:layout_margin
=
"25dp"
android:layout_gravity
=
"center"
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:text
=
"Log In"
/>
</
LinearLayout
>
- Ahora agregue el siguiente código en el archivo MainActivity.java . onClickListener se agrega al botón Iniciar sesión que agrega el efecto Shake tanto en el texto de edición. Las diferentes funciones, como la duración , establecen la duración, la repetición establece la cantidad de veces que se debe repetir el efecto y playOn establece el efecto en un widget en particular.
MainActivity.java
package
org.geeksforgeeks.gfgviewshaker;
import
androidx.appcompat.app.AppCompatActivity;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.Button;
import
android.widget.EditText;
import
com.daimajia.androidanimations
.library
.Techniques;
import
com.daimajia.androidanimations
.library
.YoYo;
public
class
MainActivity
extends
AppCompatActivity {
Button login;
EditText id, password;
@Override
protected
void
onCreate(
Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
login = findViewById(R.id.button);
id = findViewById(R.id.editText1);
password = findViewById(R.id.editText2);
login.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v)
{
YoYo.with(Techniques.Shake)
.duration(
500
)
.repeat(
2
)
.playOn(id);
YoYo.with(Techniques.Shake)
.duration(
500
)
.repeat(
2
)
.playOn(password);
}
});
}
}
Producción:
Publicación traducida automáticamente
Artículo escrito por madhavmaheshwarimm20 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA