corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

Agregando y Editando Gráficos Vectoriales Escalables (SVG) Archivos en Mobility Pack

Con el soporte JSR-226 incluido en Netbeans Mobility Pack para CLDC/MIDP 5.5,tu ahora puedes utilizar archivos con formato Scalable Vector Graphics (SVG) para agregar vector-based graphics en tus aplicaciónes móviles. Los archivos SVG files son compactos y te dan la posibilidad de tener gráficos de alta-calidad sobre dispositivos de limitados-recursos. SVG tambien soporta secuencia de comandos (scripts) y animaciónes, lo cual es ideal para interactuar, manejar datos y personalizar gráficos.

Este articulo te mostrara como la GUI-based Visual Mobile Designer dentro del software Mobility Pack te permitira crear menús, splash screens, wait screens, y animaciónes solo seleccionando y arrastrando (drag-and-drop)componentes desde la paleta

Que son SVG y JSR-266?

De su sigla en inglés, Java Specification Request, (JSR)-226 especifica una nueva API para interpretar escalables, vectores gráficos bidimensionales. En lugar de codificar el contenido de cada pixel, como imágenes de formato raster-based, asi como GIF y JPG, los vectores gráficos contienen solo instrucciones de dibujo para cada pixel. Lo cual da a las imágenes vectoriales varias ventajas:

  • Son Escalables, a calidad de la imagen permanece igual sobre las pantallas de diferentes tamaños y resoluciones. También puedes reducir, voltear e invertir la imagen sin perder la calidad.
  • Soportan scrips y animaciones, son ideales para interactuar, y para gráficos data-driven.
  • Soncompactas. Las imágenes Vector-base pueden ser diez veces más pequeñas e idénticas como una imagen en formato GIF o JPEG. Esta importante ventaja hace posible crear aplicaciónes gráficamente ricas para dispositivos de mano con recursos limitados
  • Permiten a los usuarios interactuarcon el contenido de la imagen.
  • Son consultables, permiten a los usuarios buscar textos dentro de la imagen. Por ejemplo, el usuario puede buscar en un mapa nombres específicos de calles, o buscar una lista de restaurantes con sus menús y seleccionar su plato favorito.

La especificación SVG (Gráficos Vectoriales Escalables) es la World Wide Web Consortium especificación para describir gráficos bidimensionales y aplicaciónes graficas en XML. La especificación SVG describe imágenes con formas vectoriales, texto, y gráficos raster integrados. Un subconjunto completamente equipado, o perfil, de SVG dirigido a hacia dispositivos móviles es llamada "SVG-Tiny." JSR-226 adopta la version 1.1 del perfil SVG-Tiny como el formato oficial para los vectores gráficos de J2ME.

Tu puedes encontrar mas acerca de JSR-226 leyendo el articulo, Obteniendo Graficos 2D para moviles (J2ME).

Trabajando con imagenes SVG

Visual Mobile Designer (VMD) te proporciona de forma intuitiva la manera de incorporar imágenes SVG y animaciónes dentro de tus aplicaciones móviles. En el VMD, puedes inspeccionar y ver previamente animaciónes e imágenes SVG, y seleccionar y arrastrar (drag and drop) componentes SVG (splash screens, menús, and wait screens) desde la Paleta de Componentes al diagrama de flujo(Flow Design) de tu aplicación o dentro del Diseñador de Pantallas (Screen Designs).

Screenshot of the VMD with a Hello World application with an SVG SplashScreen. An emulator running the SVG file is also shown.

Para usar las nuevas funciones SVG, necesitas tener el siguiente software instalado:

Vision previa de los Archivos SVG

Para usar archivos SVG en tus aplicación móvil, primero agrega el archivo al <project_home>/src directorio de tu proyecto. Una vista rapida al grafico estan facil como hacer doble-click al nombre del archivo. Despues de abrir el archivo, puedes pasar el mouse sobre el grafico para resaltar los diferentes elementos. Has clic sobre el área amarilla en la barra de herramientas para correr las animaciones. También puedes utilizar barra horizontal de desplazamiento para seleccionar en cualquier momento una parte de la animación.

An animated SVG graphic in the preview window.

Para agregar gráficos SVG dentro del diagrama de flujo de tu aplicación, arrastra un componente SVGMenú, SVGSplashScreen, o SVGWaitScreen de la Paleta de componentes dentro del Flow Designer (te explicare estos componentes en los siguientes párrafos). Ahora selecciona y arrastra el grafico desde la ventana de proyectos (Projects window) dentro del componente. También es posible solo darle doble-clic al componente para abrirlo en modo Screen Designer, y solo arrastrar el archivo SVG dentro de la pantalla abierta.

De la misma manera puedes seleccionar y arrastrar archivos SVG dentro del Screen Designer, y asi colocar el grafico dentro de la pantalla. Nota que cuando tu arrastras un grafico dentro de un componente, un SVGImage es agregado en el folder "Resources" en la ventana de navegacion (Navigator Window).

Screenshot of the Screen Designer with a SplashScreen Component and the SVG file that was dropped into it.

Editor Externo

Al ser SVG un lenguaje basado en XML, es posible producir contenidos SVG con un editor de text. De cualquier manera, tu probablemente obtendrás mejores resultado utilizando uno de los muchas herramientas de código abierto o comercial que hay disponibles hoy en día . Las herramientas comerciales que han sido probadas con NetBeans Mobility Pack son:

La W3C mantiene una extensa lista de productos que implementan SVG. Estos aun no han sido probados, pero deberían trabajar sin problema con el IDE.

Para agregar un editor IDE, selecciona Tools > Options. Y selecciona el icono Miscellaneous, se expenderán los Setting de SVG. Clic en el botón Change para agregar la ruta de tu editor al IDE.

Shows Tools > Misc with SVG Tools option open, with the External editor Path specifyin gthe path of the  Inkscape SVG Editor.

Ahora pedes abrir un grafico en tu editor solo haciendo doble-clic en el grafico en la ventana del Screen Designer.

Trabajando con SVG en Visual Designer

Ahora que ya tienes los gráficos SVG y las animaciones preparadas, estas listo para agregarlas en tu aplicación móvil. En esta sección te hablare acerca de cada componente que tu puedes utilizar para mejorar tu aplicación.

Working with SVG Animations

El componente svgAnimationWrapper permite insertar un archivo SVG animado en cualquier parte del flujo de tu aplicación o dentro de una pantalla. EL componente es una envoltura sobre la clase SVGAnimator de la API JSR-226. de la API JSR-226. Esto es también la base para todos componentes (svgSplashScreen, svgWaitScreen, and svgMenu)—todos ellos lo heredan del svgAnimationWrapper.

Para agregar un archivo SVG dentro de tu aplicación, selecciona y arrastra el componente svgAnimationWrapper de la Paleta de Componentes y colócalo en el Flow Designer. Ahora arrastra un archivo SVG desde la ventana de Proyectos dentro del componente. Para controlar el comportamiento de la animación en la pantalla de tu aplicación puedes modificar las siguientes propiedades:

  • Start Animation Immediately. Esto es si quieres que el componte inicie la animación inmediatamente cuando aparezca sobre la pantalla
  • Animation Time Increment. El mínimo tiempo en segundos, que debería transcurrir entre la conversion de la trama. Este valor debe ser mayor a cero
  • Reset Animation When Stopped - Si tiene valor "true", el componente automáticamente reinicia la animación desde el principio cuando el componente es retirado de la pantalla. Si el valor es "false", la animación no es reiniciada y la siguiente vez que el componente desplegado, la animación automáticamente continua donde fue detenida anteriormente.
  • Full Screen - Determina si el componente debe ser mostrado en pantalla completa.

Trabajando con Splash Screens

Las Splash screens son usadas para mejorar la presentación de una aplicación. Típicamente, se utiliza una splash screen cuando en programa inicia, o para desplegar el logo, marca o información.

Para agregar una SplashScreen a tu aplicación, arrastra una SVGSplashScreen desde la Paleta y colócala en el Flow Designer. Ahora arrastra un archivo SVG desde la Ventana de Proyectos dentro del componente

Como una Splash Screen convencional en el Visual Designer, tu conectas splash screen en el Flow Design de tu aplicación con el Mobile Device "Start Point" con el puerto de la svgSplashScreen y conecta el puerto "Dismiss" con el componente helloForm. Si tu splash screen contiene una animación, puedes utilizar la ventana de propiedades (Properties window) para ajustar el comportamiento, por ejemplo determinar la propiedad "timeout" si quieres que sea interrumpida o no la animación..

Hello MIDlet application in the VMD, with svgSplashScreen component in the application flow.

Trabajando con Wait Screens

Las pantallas de espera (Wait Screens) permiten al usuario ejecutar tareas blocking background task (por ejemplo, conectarte a la red), y mostrar el progreso de la tarea o desplegar un mensaje en la pantalla para informar al usuario que la información esta siendo procesada.

Como svgSplashScreen, svgWaitScreen es la versión SVG del componente WaitScreen. Para agregar una SVG Wait Screen, arrastra el componente svgWaitScreen de la Component Palette y colócalo en el Flow Designer. Ahora arrastra un archivo SVG desde la ventana de proyectos y colócalo sobre del componente. El componente svgWaitScreen contiene dos puertos, "Success" y "Failure". Cuando la tarea (background task) es exitosamente terminada (esto es, que ninguna excepción es mostrada), el componente automáticamente continua con la siguiente acción presentada en el en el flujo de la aplicación. Si la tarea falla (una excepción mostrada), el componente automáticamente continua con la acción conectada al puerto "Failure".

Screenshot of Flow Designer screen with an svgWaitScreen component.

Aquí se muestra una SVG wait screen en el emulador.

emulator with animation running inside.

Trabajando con Menús

Las posibilidades para menús gráficos y animados son virtualmente sin límites cuando tú usas gráficos SVG como fondo o como elementos individuales del menú. En el Visual Mobile Designer, tú puedes agregar un menú previamente creado a tu aplicación, o agregar un menú de fondo y entonces agregar por separado elementos del menú al menú.

Para agregar elementos al menú, arrastra un menú desde la paleta y colócalo en el Flow Designer. Ahora asigna un SVG image al componente arrastrado y colocando un grafico SVG graphic desde la ventana de proyectos.

Tú puedes crear elementos de menú de dos maneras:
  • If the image you drop contains elements (representing menu items) with IDs that start with the "menuItem_" string, the elements are automatically recognized by the IDE and are added to the component as menu items, sorted alphabetically.
  • Si el componente SVG image no contiene elementos con IDs con el cual comienza el string"menuitem_", tu puedes agregar nombres a los elementos para representar individualmente cada elemento del menú solo arrastra un componente SVGMenu Element desde la Component Palette y colócalo en el sobre el componente SVGMenu. Ahora que los componentes SVGMenu Element están agregados al SVGMenu puedes obsever que en el Flow Designer nuevos puertos disponibles llamados "menuItem_". Puedes renombrar los puertos de acuerdo al nombre del archivo SVG.

En ventana del Flow Designer, puedes observar que el componente svgMenu ahora contiene varios puertos llamados menuItem_. Esos puertos corresponden a elementos individuales del menú y puedes ser usado en el flow design como cualquier otro puerto. Los elementos del menú también son visibles en la Inspector Window y pueden ser borrados o reordenados en también en esta ventana.

Aquí te mostramos un ejemplo de un menú. Nota como el mouse corre sobre la selección "Download data", esta cambia de color—esta es una función de los gráficos SVG. Observa como tambien la opción "Download data" tiene una línea de puntos alrededor—la línea muestra los límites de el elemento.

An SVG menu with the cursor selecting a specific choice--"Download data".

Ahora tomaremos este menú y lo agregaremos al diagrama del proyecto. Por medio de una línea de acción desde cada puerto _menuitem, tu conectas las opciones del menú para una acción especifica o otras animaciones SVG.

Flow Designer window with svgMenu component. Vairous menuitem_ ports are connected to Forms and other components.

Exportando Gráficos SVG y Animaciones

Mas y mas dispositivos móviles están soportando los estándares JSR-226 y SVG, si tu quisieras convertir gráficos SVG graphics o animaciones a archivos PNG si tu desarrollas en antiguos dispositivos..

Generando Archivos PNG desde Archivos SVG

Simplemente has clic-derecho en el nodo de la imagen en la Projects window del Explorer y escoge la opción Export SVG Image to PNG Image, o Export SVG Animation to PNG Animation. Un dialogo se abre, y te da la oportunidad de especificar el tamaño de la imagen exportar la imagen para activar la configuración o todas las configuraciones para tus proyectos.

ISi tu escoges exportar la imagen o animación para todas tus configuraciones, el IDE automáticamente creara raster imágenes basadas en el tamaño de la pantalla de cada configuración individual. Por ejemplo, si tu tienes tres configuraciones, cada una con diferente tamaño de pantalla, la export function automáticamente creara tres imágenes PNG o animaciones con el tamaño correspondiente para cada una de las tres configuraciones.

 

Siguientes Pasos

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems