Código de Android, tengo cinco, configuro un botón, ¿cómo hacer clic en el botón una vez para cambiar al siguiente?
Este tipo de distribución requiere: dos efectos de animación, un diseño y una clase principal para implementar. No entremos en detalles. eche un vistazo al código:
Clase pública IamgeTrActivity extiende la actividad {
/** Se llama cuando la actividad se crea por primera vez. */
ImageView pública imageView
Imagen públicaView imageView2
Animación pública Animación 1;
Animación pública Animación 2;
Texto público TextView;
juage booleano público = true
imágenes int públicas[]= new int[]{ r.drawable.icon, R.drawable.exprimment,
R.drawable.changer, R.drawable.dataline, r.drawable.prefification};
recuento de int público = 0;
Manejador público Handler = nuevo Handler();
ejecutable público Runnable = new Runnable(){
@Override
ejecutable público void(){
/ /TODO código auxiliar de método generado automáticamente
conjunto de animación conjunto de animación 1 = nuevo conjunto de animación (verdadero);
conjunto de animación conjunto de animación 2 = nuevo conjunto de animación (verdadero);
vista de imagen 2. establecer visibilidad(0);
TranslateAnimation ta = new TranslateAnimation(
Animación. Relativo a uno mismo, 0f, animación. Relativo a uno mismo,
-1f, animación relativa a uno mismo, 0f,
animación
ta.setDuration(2000);
p>
animación. conjunto 1. agregar animación(ta);
conjunto de animación 1. setfillafter(true);
ta = new TranslateAnimation(animation. relativo a uno mismo, 1.0 f,
relativo a uno mismo, 0f, animación.
0f, animación RELATIVE_TO_SELF, 0f);
ta.setDuration( 2000);
conjunto de animación. 2. agregar animación(ta);
conjunto de animación 2. setfillafter(true);
//iamgeView out imageView2 en .
vista de imagen. iniciar animación (conjunto de animación 1);
vista de imagen 2. iniciar animación (conjunto de animación 2); 5]);
recuento;
vista de imagen 2. setbackgroundresource(imágenes[recuento 5]); ));
If (juage)
handler.postDelayed(runnable, 6000);
Log.i(handler, handler);
}
};
@override
public void on create(Estado de instancia guardado del paquete){
super oncreate (. saveInstanceState);
setContentView(r . diseño . main);
imageView = (imageView)findViewById(r . id . imageView
vista de imagen 2); =(ImageView)findViewById(r . id . vista de imagen 2);
texto =(TextView)findViewById(r . id . texto
texto(string . valor); of(count));
//Ocultar iamgeView primero y luego mostrarlo.
vista de imagen 2. establecer visibilidad(4);
handler.postDelayed(runnable, 2000);
}
vacío público onPause() {
juage = false
super .en pausa();
}
}
android:orientation=vertical
Android:layout_width=fill_parent
android:layout_height=fill_parent
Android: id = @ id/rl gt;
android: id=@ id/imageView
Android: layout_width = fill_parent
Android: background=@drawable/icon
android:layout_below=@id/rl
Android: layout_height=120 dp/gt;
android: id=@ id/imageView2
Android: diseño_ancho = fill_parent
Android: fondo=@drawable/expriment
android: diseño_below=@ id/rl
Android: diseño_height=120DP/ gt;
android:id=@ id/text
Android:layout_ width = fill _ parent
Android:layout_height = wrap_content
Android: layout_below = @id/imageView/gt;
En segundo lugar, utilice ViewFlipper para implementar el carrusel de imágenes.
El sistema Android viene con un control de administración de varias páginas que puede cambiar automáticamente las subinterfaces:
Primero, debe agregar una vista a ViewFlipper.
(1) Importación estática: importe directamente en el archivo de diseño.
(2) Importación dinámica: método addView()
Métodos comunes de ViewPlipper:
SetInAnimation: establece la animación utilizada cuando la vista ingresa a la pantalla.
SetOutAnimation: Establece la animación utilizada cuando la vista sale de la pantalla.
ShowNext: Llame a esta función para mostrar la siguiente vista en ViewFlipper.
ShowPrevious: Llame a esta función para mostrar la vista anterior en ViewFlipper.
SetFlipInterval: establece el intervalo de tiempo para cambiar entre vistas.
StartFlipping comienza a cambiar todas las vistas usando el intervalo de tiempo establecido anteriormente y el cambio se repetirá.
Dejar de voltear: deja de cambiar de vista.
Dicho todo esto, ¿qué queremos conseguir hoy?
(1) Utilice ViewFlipper para implementar el carrusel de imágenes.
(2) ViewFlipper que admite el deslizamiento por gestos
Primero debemos preparar algunas imágenes: ponerlas en dibujables.
Crea dos animaciones: Crea una nueva carpeta en res y crea dos xmls en ella:
Left_inner:
Android: Duración =5000
android:desdeXDelta=100p
android:hastaXDelta=0/>
left_外:
android:desdeXDelta= 0
android:toXDelta=-100p
android:duration=5000/>
Archivo de diseño:
xmlns: tools=/ tools
Android: layout_width = match_parent
Android: layout_height=match_parent
Herramientas: contexto=. Actividad principal gt
android:id=@id/flipper
Android:layout_width = fill_parent
Android:layout_height = fill_parent /gt;
Categoría principal:
Clase pública MainActivity extiende Actividad {
Vista privada ViewFlipper flipper
privada int[]resId = { r.drawable.pc1, R .drawable.pc2, R.drawable.pc3, r.drawable.pc4};
@override
protected void onCreate (estado de instancia guardado del paquete){
super . oncreate(savedInstanceState);
setContentView(r . diseño . actividad _ main
flipper = (ver aleta)findViewById (r . id . aleta);
/*
*La forma de importar dinámicamente es agregar subvistas en ViewFlipper.
* */
for(int I = 0; i ltresId . length; i ) {
flipper add view(getImageView(resId[I] ));
}
/*
*Agrega efectos de animación a ViewFlipper.
* */
flipper.setInAnimation(this, r . anim . left _ in
flipper.setOutAnimation(this, r . anim . left); _ out);
flipper . setflipinterval(5000);
flipper comenzar a voltear(); getImageView(int resId){
Imagen ImageView = new ImageView(this);
imagen setbackgroundresource(resId);
Devolver imagen;
}
}
Entonces esto logra el efecto funcional de una encuesta de imágenes.
También podemos agregar efectos de clic y deslizamiento:
También necesitamos agregar dos efectos de deslizamiento a la derecha:
Right_inside:
android: fromXDelta=0
android: toXDelta=-100p
android: duración=2000/>
right_out:
android : fromXDelta=100p
android:toXDelta=0
android:duration=2000/>
Luego necesitamos agregar la clase principal (si no No quiero que la imagen se reproduzca automáticamente, solo quiero reproducir la imagen a través de gestos, entonces necesitas eliminar el "código que agrega efectos de animación a ViewFlipper"):
onTouchEvent público booleano (evento de evento de movimiento ){
//TODO código auxiliar de método generado automáticamente
switch (event.getAction()) {
Evento de movimiento del caso. action_down:
startX = event.getx();
Pausa;
Evento de moción de caso. ACTION_MOVE: //Determina si deslizar el dedo hacia la izquierda o hacia la derecha.
if(event . getx()-startX gt; 100) {
flipper.setInAnimation(this, r . anim . left _ in
); flipper.setOutAnimation(this, r . anim . left _ out);
flipper show anterior()
} else if(startX-event . getx() gt; 100 ) {
flipper.setInAnimation(esto, r . anim . derecha _ adentro
flipper.setOutAnimation (esto, r . anim . derecha _ afuera
);flipper .show next();
}
Evento de movimiento del caso.
Action_Action:
Interrupción;
}
Devolver super.onTouchEvent(evento);
}
En De esta manera, usamos nuestro ViewFlipper para completar la función de sondeo de imágenes.
La aplicación Midnight Artifact proporciona chat interactivo de voz privado en tiempo real e intercambio secreto anónimo de intereses sexuales.