DESARROLLADOR

Cómo comparar los nueve interpoladores de Android directamente

William J. Francis revisa el tema de los interpoladores de Android y muestra cómo usar estas clases para divertirse más.

android logo

Escribí un artículo en noviembre de 2013 sobre el uso del interpolador de rebote de Android.Desde entonces, he recibido varios correos electrónicos preguntando sobre Otros ocho interpoladores Compatible con el SDK de Android. En lugar de revisarlos uno por uno, pensé que sería conveniente escribir una aplicación que permitiera al usuario jugar con ellos.

Este proyecto rápido le permite comparar directamente los diversos interpoladores proporcionados por Android.puedes seguir, o Descargue e importe todo el proyecto directamente en Eclipse.

1. Cree un nuevo proyecto de Android en Eclipse. Objetivo SDK 14 (ICS) o posterior.

2. En la carpeta /res/values, codifique la matriz en el archivo string.xml.

strings.xml

DiversiónConTexto
configurar

Hola Mundo

elige uno


Interpolador de aceleración y desaceleración
Interpolador de aceleración
interpolador esperado
Interpolador de sobreimpulso esperado
Interpolador de rebote
Interpolador de desaceleración
interpolador lineal
Interpolador de sobreimpulso

3. Nuestro diseño consistirá en Vista de texto y Spinner. Localice el archivo /res/layout/activity_main.xml y realice las siguientes modificaciones.

activity_main.xml

4. Necesitamos escribir el archivo /src/MainAcitvity.java. Aquí conecto un oyente OnItemSelected a nuestro widget giratorio y uso un poco de reflexión para crear el interpolador correcto. Sé que algunos puristas de Java señalarán rápidamente que Class.forName().newInstance() no es la forma recomendada de cargar una clase a través de la reflexión; sin embargo, para el contexto de lo que estoy haciendo aquí, es bastante útil, realmente en aplicaciones de producción El programa solo elegirá una implementación concreta de uno o unos pocos interpoladores muy específicos.

MainActivity.java
package com.authorwjf.funwithtext;

importar android.os.Bundle;
importar android.view.Display;
importar android.view.View;
importar android.view.animation.Interpolator;
importar android.widget.AdapterView;
importar android.widget.AdapterView.OnItemSelectedListener;
importar android.widget.Spinner;
importar android.widget.TextView;
importar android.app.Actividad;
importar android.graphics.Point;

La clase pública MainActivity amplía la actividad e implementa OnItemSelectedListener {

retraso largo final estático privado = 1000;
DURACIÓN larga final estática privada = 500;
PAQUETE de cadena final estático privado = «android.view.animation.»;

vista de texto privado mTextView1;

getScreenHeight flotante privado () {
mostrar mostrar = getWindowManager().getDefaultDisplay();
tamaño de punto = nuevo Punto();
mostrar.getSize(tamaño);
volver (flotante) tamaño.y;
}

@Anular
Vacío protegido onCreate (Paquete de estado de instancia guardado) {
super.onCreate(estadoDeInstanciaGuardado);
setContentView(R.diseño.actividad_principal);
mTextView1 = (TextView) findViewById(R.id.text_view);
((Spinner)findViewById(R.id.spinner)).setOnItemSelectedListener(this);
}

@Anular
public void onItemSelected(AdapterView padre, ver vista, int pos, identificación larga) {
String interpolatorName = (String) parent.getAdapter().getItem(pos);
mTextView1.setTranslationY(getScreenHeight());
mTextView1.setVisibility(View.VISIBLE);
probar {
Interpolador interpolador = (Interpolador) Class.forName(PACKAGE+interpolatorName).newInstance();
mTextView1.animate()
.setInterpolator(Interpolador)
.setDuration(duración)
.setStartDelay(retraso)
.translationYBy(-getScreenHeight())
. comienzo();
} catch(excepción e) {
e.printStackTrace();
}
}

@Anular
public void onNothingSelected(AdapterView arg0) {
// TODO stub de método generado automáticamente
}

}

¿Listo para ver algunas animaciones de vista real? Ejecute la aplicación (preferiblemente en el dispositivo) y seleccione un interpolador del menú desplegable. Cada vez que hago esto, el texto «hola mundo» desaparece de la vista y luego vuelve a aparecer en la vista como una animación. Es posible que deba reducir la duración de la animación para comprender mejor la diferencia entre algunas de las animaciones más sutiles.

Lo animo a agregar animaciones de vista en toda su aplicación siempre que sea posible. Considero que las animaciones de vista son muy útiles para señalar áreas táctiles en la pantalla y suavizar el retraso al hacer cálculos de fondo.

LEER  Cómo convertirse en desarrollador: 7 consejos de los profesionales

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba