NOVEDADES IMPORTANTES

Acceso a todos los contenidos

Hace unos meses decidimos suspender nuestra actividad de formación online en Digital Learning SL (propietaria de esta web).

Desde entones hemos mantenido operativos nuestra plataforma de teleformación y webs de contenidos Academia Android y Digital Learning, habilitando un acceso libre y gratuito a todos estos recursos, incluyendo cursos y contenidos Premium que antes requerían un registro y pago previo, lo que ha propiciado un volumen de visitas constante de usuarios que consultan esta formación.

Venta-traspaso de los contenidos

Creemos que estas webs por sus contenidos, posicionamiento SEO y atracción de tráfico (junto a sus cuentas en redes sociales asociadas, incluyendo Twitter y Facebook de nuestro curso de Community Manager) pueden ser una oportunidad para emprendedores o compañías de diversos ámbitos (formación, marketing y publicación online, desarrollo software,…) que quieran:

  • Captar usuarios, alumnos o clientes para sus proyectos, productos y servicios.
  • Comercializar los contenidos bajo múltiples fórmulas: venta de publicidad, modelos freemium o de pago, suscripciones…
  • Crear un nuevo proyecto a partir de esta infraestructura de recursos.

Si tú o tú empresa estáis interesados en adquirirlos, ofrecemos su traspaso en propiedad exclusiva. Puedes contactar conmigo en «contacto@digitallearning.es» (por favor entiende que los correos que no vengan suficientemente identificados no vamos a atenderlos). Gracias.

Manuel Cabello (Socio-Director de Digital Learning/Academia Android)

Este es el número de tutoriales publicados:

Pincha en los textos de los contadores de Tutoriales publicados, Premium o Series de tutoriales para tener un detalle de las publicaciones que comprenden.

Desde hace unos meses, todos los contenidos, incluidos los Premium, son accesibles libre y gratuitamente.

  • Premium
  • Acceso libre
130
Acceso libre
126
Premium

Algunos datos sobre los contenidos que hemos publicado hasta la fecha:

74
Videos
61
Proyectos descargables
contacto[arroba]digitallearning.es
OpenGL2 Img11

Proyecto Android con OpenGL: iluminación e interacción con objetos 3D

Post Series: Gráficos 2D-3D en Android: OpenGL (II)

En este tutorial vamos a desarrollar un proyecto Android, donde a partir de objetos 3D representados, se establecerán los parámetros de iluminación, además de implementar eventos de interacción con el usuario cómo la pantalla táctil o el acelerómetro. Para este ejemplo, sólo se hará hincapié en las modificaciones que hagamos respecto al primer caso práctico que publicamos sobre OpenGL.

Puedes descargar todo el código del proyecto, al final de este tutorial

En la Aplicación Android que vamos a crear, se definirá un menú principal, en el que podremos seleccionar la opción «Interacción usuario con objetos 3D», mostrando posteriormente los objetos cubo y pirámide en la misma vista.

Interfaz de la App Android ejemplo

Elementos necesarios:

  • Una clase principal llamada MainActivity, que heredará de la clase base Activity, donde se definen los elementos enlazados con sus recursos a nivel de layout, además desde esta Activity se realiza la llamada a una nueva View, encargada de construir los objetos gráficos (sólo nos centraremos en la opción «Interacción usuario con objetos 3D» del componente RadioButton definido):
  • Una clase llamada GLRender, que implementará la interfaz Renderer, encargada de construir la vista dónde se representará el objeto, además de definir los parámetros de iluminación y posición de las luces.
  • Una clase llamada Cubo3D y Piramide3D, dónde se definen los parámetros del objeto 3D que será invocado desde la clase GLRender.
  • Una clase llamada HiloEventosUsuario, encargada de controlar las acciones que realice el usuario al tocar la pantalla del dispositivo. Esta clase hereda de la clase base GLSurfaceView.

Objetos 3D renderizados en la Aplicación Android

En la imagen vemos  que como se muestran los objetos 3D en la vista. El usuario podrá manejar la rotación de ambos, mediante el sensor de la pantalla táctil del dispositivo, pudiendo observar los cambios de iluminación de las caras de los objetos.

FormasPrimitivas/src/com.academiaandroid.formasprimitivas/HiloEventosUsuario.java

Vamos a ver paso a paso el desarrollo de este proyecto:

Se crea una nueva clase llamada HiloEventosUsuario, encargada de controlar las acciones que realice el usuario al tocar la pantalla del dispositivo. Esta clase hereda de la clase base GLSurfaceView, y su principal tarea es implementar el evento onTouchEvent(final MotionEvent event) , que cazará las pulsaciones en la pantalla del usuario, invocando el método girarObjetos() de la clase GLRender:

 

FormasPrimitivas/src/com.academiaandroid.formasprimitivas/GLRender.java

En primer lugar definimos e inicializamos las variables, a nivel de clase, necesarias para establecer la iluminación en la escena representada. También se definen tres variables de tipo float, que almacenarán las coordenadas de la posición de la pantalla que seleccione el usuario:

Se sobrescribe el método onSurfaceCreated() con la configuración de la iluminación que se define en la vista construida:

 

Se habilita la iluminación al representar la vista inicialmente:

Se define el método que será invocado por el evento que controla las diferentes acciones que se realicen sobre la pantalla. Los valores del eje X e Y serán enviados al primer parámetro del método  glRotatef()  para actualizar la posición de rotación del objeto:

 

FormasPrimitivas/src/com.academiaandroid.formasprimitivas/Cubo3D.java

OpenGL2-img11

Se definen e inicializan las variables a nivel de clase, necesarias para establecer la iluminación en la escena representada.

 

Se habilita la definición de materiales, permitiendo diferenciar la forma en que la luz se refleja sobre los objetos:

 

FormasPrimitivas/src/com.academiaandroid.formasprimitivas/Piramide3D.java

Al igual que la clase cubo3D, se definen e inicializan las variables a nivel de clase, necesarias para establecer la iluminación en la escena representada:

 

Iluminacion de objeto pirámide al ser rotada

 

Y posteriormente, dentro del método draw(), se habilita la definición de materiales, permitiendo diferenciar la forma en que la luz se refleja sobre los objetos:

 

FormasPrimitivas/res/layout/activity_main.xml

Se define un recurso de tipo string, para asociarlo a los componentes de tipo texto mostrado en el menú principal. También comentar, que el componente RadioButton «radioCubo3D», que mostrará el texto «Interacción usuario con objetos 3D», será la opción que nos permita controlar la rotación de objetos 3D en la pantalla, además de poder observar los diferentes cambios de iluminación:

Componentes tipo texto de la Aplicación

Recurso strings.xml:

FormasPrimitivas/res/values/strings.xml