Professional Documents
Culture Documents
Por el momento, se centrar en el diseo de la pantalla de inicio en el modo de portrait, pero que tratar de evitar el difcil esfuerzo de adaptacin para el modo landscape.
Con el diseo simple de la pantalla de inicio, se asegurar de que los elementos pueden escalar razonablemente bien a otras orientaciones, a condicin de modificar la fuente y el tamao de grficos posteriormente.
Recordemos que el archivo /res/layout/splash.xml es utilizado por QuizSplashActivity. Es necesario actualizar el diseo predeterminado, que simplemente muestra un solo control TextView (informar que es la pantalla de inicio) para contener los controles para cada uno de los elementos en el diseo en bruto.
Qu es un Layout?
Los desarrolladores de Android utilizan este trmino para referirse a disposicin de una de dos cosas. Las dos deniciones de diseo son: Un tipo de recurso que dene lo que se dibuja en la pantalla. Recursos de diseo se almacenan como archivos XML en el directorio res/layout, que es el directorio de recursos para el diseo de UI`s de la aplicacin. Un recurso de diseo es simplemente una plantilla para una pantalla de interfaz de usuario, o parte de una pantalla, y contiene un tipo de clase View, cuyo principal propsito es organizar otros controles. Estas clases de diseo (LinearLayout, RelativeLayout, TableLayout, etc) se utilizan para mostrar los controles secundarios, tales como controles de texto o botones o imgenes en la pantalla. Interfaces de usuario de Android se puede denir como recursos de diseo en XML o creados mediante programacin.
Linearlayout
Framelayout
Tablelayout
Relativelayout
jueves 13 de septiembre de 2012
Los diseos y sus controles secundarios View tienen ciertos atributos que ayudan a controlar su comportamiento.
Por ejemplo, todos los modelos comparten las caractersticas android: layout_width y android: layout_height, que controlan el ancho y el alto de un elemento.
Los valores de los atributos pueden ser las asignadas a dimensiones, tales como un nmero en pxeles, o utilizar un enfoque ms flexible: fill_parent o wrap_content.
jueves 13 de septiembre de 2012
Usando fill_parent instruye un diseo a escala del tamao de la matriz de diseo, y el uso de wrap_content "envuelve" el control secundario, dndole slo el espacio de las dimensiones del control secundario View. Ejemplo Un nmero de otras propiedades interesantes se puede utilizar para controlar el comportamiento de diseo especfico, como los mrgenes y los atributos de diseo especficos del tipo. Considerar de que no todas las propiedades son comunes para todos los Controles View.
En el diseo de pantalla de inicio, puede utilizar un control LinearLayout vertical para organizar los elementos de la pantalla, que son, en este orden: un control TextView, un control TableLayout con algunos elementos de control TableRow de los controles ImageView, y luego dos controles mas de tipo TextView.
Por ltimo, es necesario crear algunos recursos de dimensin en un nuevo archivo de recursos llamado /res/values/dimens.xml. Puede crear tres valores de nueva dimensin: una para controlar el tamao de fuente del ttulo (24 puntos), uno para controlar el tamao de la letra la versin de texto (5pt), y uno para permitir la buena lnea de separacin entre las lneas del texto de la versin (3 puntos). <resources> <dimen name="logo_size">24pt</dimen> <dimen name="version_size">5pt</dimen> <dimen name="version_spacing">3pt</dimen> </resources>
2. Agregue un control TextView llamado TextViewTopTitle. Establecer layout_width a fill_parent y layout_height a wrap_content. Ajuste los atributos para el control de texto para referenciar al recurso de cadena, su atributo textColor al recurso de color amarillo, y su TEXTSIZE a la dimensin de los recursos que ha creado. 3 . A g r e g u e u n c o n t r o l Ta b l e L a y o u t l l a m a d o TableLayout01. Establecer layout_width to fill_parent y layout_height to wrap_content. Asimismo, defina stretchColumns atributo a , para estirar una columna, segn sea necesario, para ajustarse a la pantalla.
Por ltimo, se necesita una cierta secuencia de animacin diversa para los grficos del TableLayout. En este caso, el conjunto de animacin contiene varias operaciones, simultneas: una rotacin, algunos escalados, y una transicin alfa. Como resultado, el objetivo ser ver girar a la grafica existente.
<?xml version=1.0 encoding=utf-8 ?> <set xmlns:android=http://schemas.android.com/apk/res/android android:shareInterpolator=false> <rotate android:fromDegrees=0 android:toDegrees=360 android:pivotX=50% android:pivotY=50% android:duration=2000 />
Como puede ver, la operacin de rotacin es de 2 segundos para girar de 0 a 360 grados, girando alrededor del centro de la vista.
La operacin alfa debe resultarle familiar, sino que simplemente se desvanece en el mismo perodo de 2 segundos.
Por ltimo, el aumento de la escala del 10% al 100% durante el mismo perodo de 2 segundos. Esta animacin completa dura 2 segundos para completar. Despus de haber guardado los tres archivos de animacin, puede comenzar a aplicar las animaciones de los puntos de vista especficos.
}
jueves 13 de septiembre de 2012
Para animar controles View de esta manera, debe cargar la animacin, crear LayoutAnimationController, configurar segn sea necesario, y luego llamar al mtodo setLayoutAnimation() del diseo.
Usando este mtodo, la animacin se aplica a cada punto de vista Hijo, pero cada uno comienza a un tiempo diferente. (El valor predeterminado es de 50% de la duracin de la animacin, que, en este caso, sera de 1 segundo). Esto le da el bonito efecto de cada giro ImageView a la existencia de un modo en cascada.
TableLayout table = (TableLayout) findViewById (R.id.TableLayout01); for (int i = 0; i < table.getChildCount(); i++) { TableRow row = (TableRow) table.getChildAt(i); row.clearAnimation(); }
jueves 13 de septiembre de 2012
Para esto, se crea un control Intent nuevo para poner en marcha la clase QuizMenuActivity y llamar al metodo startActivity(). Tambin debe llamar al mtodo finish() de QuizSplashActivity porque no queremos mantener esta actividad en la pila (es decir, que no desea que el botn Atrs vuelva a esta pantalla).
jueves 13 de septiembre de 2012
Lo hace mediante la creacin de un objeto AnimationListener, que hace las devoluciones de llamada para los eventos del ciclo de vida de la animacin : inicio, fin, repeticin.
Ahora bien, si se ejecuta la aplicacin del juego de nuevo, ya sea en el emulador o en el dispositivo, se ve un poco de animacin agradable en la pantalla de inicio.
El usuario tiene una transicin sin problemas a la pantalla del men principal, que es la siguiente pantalla en la lista de tareas.
Resumen
Ya hemos implementado la primera pantalla del juego concurso de trivia.
Diseamos una pantalla y luego identificamos el diseo y componentes adecuados necesarios para implementar el diseo.
Despus de incluir los recursos adecuados, se pudo configurar el archivo de diseo splash.xml. Por ltimo, se ha aadido algunas animaciones interpoladas a la pantalla y luego se manej la transicin entre QuizSplashActivity y QuizMenuActivity.
Preguntas
P. En qu medida la plataforma Android es capaz de realizar lo que se refiere a la animacin? R. La plataforma Android tiene un rendimiento razonable con animaciones. Sin embargo, es muy fcil a la sobrecarga de una pantalla con animaciones y otros controles. Por ejemplo, si fuera a colocar un control VideoView en el centro de la pantalla con todas las animaciones, se pueden ver distintos aspectos de rendimiento. Siempre realice las operaciones de prueba, tales como animaciones, en un dispositivo para asegurarse de que su aplicacin sea factible.
Preguntas
P. Por qu recorrer cada punto de vista secundario del control TableLayout en lugar de acceder a cada c o n t r o l Ta b l e R o w ( R . i d . Ta b l e R o w 0 1 y R.id.TableRow02) por su nombre? R. Sera perfectamente aceptable acceder a cada elemento TableRow por su nombre si cada uno garantiza que existen en todos los casos. Usted ser capaz de tomar ventaja de este mtodo iterativo ms tarde, cuando apunte a su proyecto a diferentes orientaciones de pantalla. Por ahora, la pantalla de bienvenida se basa slo en el modo portrait.
Preguntas
P. Q u p a s a r a s i s e s o l i c i t a e l LayoutAnimationController al TableLayout en lugar de a cada TableRow? R. Si se aplica LayoutAnimationController al TableLayout, cada control TableRow, en lugar de cada ImageView control, girara todo lo existente. Sera una forma diferente, menos atractivo visualmente el efecto.
Taller
1. Verdadero o Falso: No hay manera de parar una animacin, una vez que ha comenzado. 2. Qu tipo de operaciones son compatibles con la animacin interpolada? A. Transparencia, el movimiento y rotacin en 3D B. alfa, escalar, rotar, y traducir C. bailar, cantar y ser feliz
Taller
3. Verdadero o Falso: puede utilizarse el LinearLayout para permitir que todos los objetos secundarios View se puedan dibujar encima y por debajo una de otra (vertical). 4. Cul de estos no es un diseo integrado en el SDK de Android? A. FrameLayout B. CircleLayout C. HorizontalLayout D. RelativeLayout
Respuestas
1. Falso. Utilice el clearAnimation () para borrar todas las animaciones y en espera de ejecucin en un punto de vista determinado. 2. B. animacin interpolada puede incluir cualquier combinacin de las transiciones alpha (transparencia), la escala (crecimiento o disminucin), la rotacin de dos dimensiones, y la traduccin (en movimiento) de un punto a otro. 3. Verdadero. Adems, LinearLayout se puede utilizar para Ver todos los objetos secundarios a la izquierda y a la derecha el uno del otro (horizontal). 4. B y C y FrameLayout RelativeLayout estn incluidos en el SDK de Android.
jueves 13 de septiembre de 2012
Ejercicios
1. Modificar LayoutAnimationController aplicar animaciones de cada punto de vista del hijo dentro de un control TableRow en orden aleatorio mediante el setOrder() con un valor de 2 (al azar). 2. Modificar el LayoutAnimationController aplicar animaciones para cada punto de vista del hijo dentro de un control TableLayout en lugar de cada control TableRow. Ver la animacin resultante.
Ejercicios
3. Modificar el diseo de la pantalla de bienvenida para reproducir un vdeo corto en lugar de animar a los controles ImageView. Primero cambie el control TableLayout con un control VideoView. A continuacin, establezca el URI de VideoView a la direccin URL de un vdeo en la web en el formato adecuado, utilizando el Uri.parse() y setVideoURI el control del mtodo VideoView(). Por ltimo, retire AnimationListener y el uso OnCompletionListener un control VideoView en lugar para la transicin a la pantalla del men principal cuando el video termina.
jueves 13 de septiembre de 2012