2011-01-28 8 views
5

sólo estoy mirando a su alrededor para iniciar el aprendizaje de NDK, con un proyecto particular en mente:Android NDK y la representación de pantalla animados

Quiero hacer un mapa de bits continuamente cambiando de un lado NDK para poder mostrarlo en un fondo de pantalla en vivo.

(por lo tanto no estoy hablando de la representación de textura de OpenGL aquí, sino de la representación de un mapa de bits)

I googled un poco y descubrí que hay una opción para manipular directamente un mapa de bits píxeles. Pero también encontré que la documentación dice que esta función solo está disponible desde Android 2.2. Y me gustaría apoyar 2.1 en mi fondo de pantalla en vivo.

Por otro lado, encontré varios proyectos que hacen cosas similares: renderizar algo desde ndk y mostrarlo en fondo de pantalla en vivo. Y trabajan en 2.1. Los ejemplos son: maravilloso Video Live Wallpaper, y creo que Shake Them All Live Wallpaper hace el mismo tipo de cosas.

Entonces la pregunta es: ¿me falta alguna otra forma de hacer un renderizado continuo a LW que no sea la manipulación directa de los datos de mapa de bits? O alguna otra cosa me equivoqué? :)

Respuesta

5

Hasta donde yo sé, los otros proyectos que hacen renderizado con el NDK y usan jnigraphics antes de 2.2 incluyen realmente esa biblioteca en el proyecto y la cargan como una biblioteca de terceros.

Consulte la descripción de PREBUILT_SHARED_LIBRARY en android-ndk-r5b/docs/ANDROID-MK.html para obtener más información sobre cómo hacerlo.

puede encontrar jnigraphics en:

android-ndk-r5b/platforms/android-8/arch-arm/usr/lib/libjnigraphics.so 

Por supuesto, no sé si en realidad es permisible para redistribuir parte de la NDK (tal vez alguien más puede intervenir en esto), pero al parecer el único La suspensión con el uso de jnigraphics antes de Android 2.2 es simplemente el hecho de que no está presente en versiones anteriores.

Espero que ayude.

+0

¡Oh, gracias! Creo que eso responde mi pregunta :) – dimsuz

+0

¿Está escrito en jnigraphics Java? En ese caso, tendría mucho más sentido escribirlo en Java. –