2011-11-11 15 views
6

Apenas comenzando a desarrollar Android. Para comenzar, estoy compilando una aplicación que funcionará como un visor de galería + imagen, con la funcionalidad adicional de mover rápidamente y rápidamente imágenes a subcarpetas, para una fácil ordenación de muchas imágenes.Mejor práctica de Android: vistas/actividades

Hasta ahora tengo 2 actividades: una vista de pantalla completa y una cuadrícula de miniaturas de pantalla completa (para fines de multiselección).

Ahora que soy nuevo en esto, me preguntaba si esta doble actividad fue una sabia decisión. ¿Sería mejor simplemente cambiar entre las vistas de contenido que activar una actividad completamente diferente cuando se cambia de la vista de imagen a la vista de cuadrícula (y viceversa).

Lo que estoy buscando son, por supuesto, los pros y contras obvios: rendimiento, facilidad y facilidad de uso. Pero también si hay razones más fundamentales de "patrón"/mejores prácticas para uno u otro.

Gracias

Respuesta

5

Creo que su enfoque de doble actividad es sensato. En términos generales, las API de Actividad/Vista de Android se estructuran en torno a tener una sola Vista fija por Actividad. Aunque puede manipular vistas en el diseño de su actividad, sugiero que esto se restrinja a ocultar/mostrar/mover vistas en lugar de reemplazar el diseño al por mayor.

Lo que probablemente deberías considerar es el nuevo Fragments API. Esto se puede considerar como "actividades dentro de actividades". Un Fragmento esencialmente le permite resumir un elemento de una IU (diseño y comportamiento) en un componente reutilizable. Entonces, en su ejemplo específico, las dos UI distintas podrían ser Fragmentos dentro de una sola actividad.

Esto tiene un par de ventajas tales como poder reutilizar sus UI en otras actividades y hacer animaciones de transición funky.

+0

+1 para la API de Fragmentos, tengo no lo usé todavía, pero se ve muy bien. Gracias. Solo está disponible desde el nivel 11 de la API (Android 3.0), eso significa que es un no-go para mí. Lástima :( – Guillaume

+0

Estoy intrigado por el fragmento. Exactamente una de las cosas que quería hacer era animaciones al cambiar de vista de imagen a vista de cuadrícula, ya que entiendo que sería capaz de lograr con fragmentos. una actividad, por supuesto, permitiría esto, y también me permitiría reutilizar algunos elementos comunes como menús, ciertas texturas comunes, etc. Sin embargo, me gusta la simplificación del código para tenerlos en actividades separadas. – Dynde

+1

En realidad, esa simplificación (o encapsulación) de la que está hablando es esencialmente igual de clara con un Fragmento. Tu actividad simplemente se convierte en un contenedor para tus fragmentos. – tomtheguvnor

1

doble actividad debería funcionar, ya que no será molestado por la implementación de la acción botón de retroceso.

+0

Sí - conservar el comportamiento del botón de retroceso es importante. – tomtheguvnor

+0

Gracias, sí, realmente no había pensado en el botón Atrás. Pero viendo que mi alternativa era más "semánticamente enriquecedora" a través de un botón "Ir a cuadrícula" real, lo que por supuesto significaría más implementación, pero sería más amigable para el usuario, pros y contras :) – Dynde

1

Las actividades se realizaron exactamente para este propósito. Si lo prefiere, puede tener toda su aplicación en una sola actividad con un motor de diseño personalizado (volver a cargar componentes, etc.) y eso es lo que quiere hacer si quiere una aplicación "portátil" (por ejemplo, desarrolla una aplicación con un uso común). UI para varias plataformas, Andropid, Windows 7, iOS, etc.), pero si solo desea usar Android, la forma preferida es usar las API proporcionadas y no reinventar la rueda. Funciona bien, y dará a los usuarios una sensación reconfortante de consistencia en su experiencia (se verá y se sentirá como otras aplicaciones de Android).

El proyecto actual que estoy trabajando (un juego) ya cuenta con 10 actividades diferentes, y estoy planeando más ...