elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Programación para android
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programación para android  (Leído 2,700 veces)
Walle214

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Programación para android
« en: 18 Abril 2019, 17:11 pm »

Muy buenas, soy estudiante y estamos creando una app para un concurso, necesitamos usar un buen numero de imagenes gif, y la app se pone muy pesada si la metemos en drawable, como podemos hacer para que estas imagenes se descarguen después de instalar la app? De antemanos gracias


En línea

yuimugi912

Desconectado Desconectado

Mensajes: 20



Ver Perfil
Re: Programación para android
« Respuesta #1 en: 19 Abril 2019, 15:46 pm »

podrias usar un webview con el codigo html
<img srt="ubicacionimagen"/>


En línea

srWhiteSkull


Desconectado Desconectado

Mensajes: 444



Ver Perfil WWW
Re: Programación para android
« Respuesta #2 en: 19 Abril 2019, 18:13 pm »

Pesada en que sentido? La carga no permite continuar la aplicación? Se queda a la espera?

Te cuento mi experiencia,

yo tuve que afrontar un proyecto en Android en donde al principio la aplicación debía cargar como unos tropecientos usuarios desde una base de datos de un servidor. Hasta ahí bien sino fuera porque cada usuario disponía de una imagen de retrato que se antoja algunas veces imágenes con tamaños disparatados, ésto aparte de consumir un burrada de recursos en el teléfono también provocaba que la aplicación se pegara dos mil años para iniciarse. ¿Cómo atajé el problema? Pues tuve que incluir varios sistemas, el primero usar un hilo que impidiera que la aplicación se cerrara, ya que si el hilo principal de la actividad no responde el sistema lo da por muerto y te lo cierra. A ésto lo acompañé con una animación de carga con un gif del circulito dando vueltas, permitiendo además que el usuario pudiera al menos manipular la aplicación y éste no pensara que la aplicación estuviera colgada. Luego, lo siguiente que implementé fue que las imágenes cargadas fueran optimizadas reduciendo el tamaño de éstas, de ésta forma el consumo de recursos mejora notablemente. Y por último crear una caché, y ésto se traduce en que las imágenes se almacenan por primera vez en la aplicación y siguientes inicios con la aplicación mejoran la velocidad mostrando instantáneamente las imágenes, claro que pagando el precio de reducir memoria de almacenamiento.

Hay que tener en cuenta, que es necesario comprobar si hay espacio suficiente para crear un caché o adaptar el espacio que tengamos libre para meter las imágenes que podamos. También es necesario incluir un sistema que compruebe si hubo actualización con las imágenes incluyendo algún sistema que compruebe las imágenes, y yo al final lo que hice para no complicarme la vida es que la aplicación sólo cuando pasara 24 horas actualizaba nuevamente las imágenes, pero eso ya lo planteas como necesites, a lo mejor en tú caso no lo necesitas.

Espero que mi experiencia pueda darte alguna idea para mejorar resolver ese problema que tienes.
« Última modificación: 19 Abril 2019, 20:42 pm por srWhiteSkull » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Programación para android
« Respuesta #3 en: 19 Abril 2019, 22:08 pm »

Con un ImageView + Drawable.createFromStream: https://stackoverflow.com/questions/2471935/how-to-load-an-imageview-by-url-in-android
En línea

yuimugi912

Desconectado Desconectado

Mensajes: 20



Ver Perfil
Re: Programación para android
« Respuesta #4 en: 20 Abril 2019, 14:29 pm »

Pesada en que sentido? La carga no permite continuar la aplicación? Se queda a la espera?

Te cuento mi experiencia,

yo tuve que afrontar un proyecto en Android en donde al principio la aplicación debía cargar como unos tropecientos usuarios desde una base de datos de un servidor. Hasta ahí bien sino fuera porque cada usuario disponía de una imagen de retrato que se antoja algunas veces imágenes con tamaños disparatados, ésto aparte de consumir un burrada de recursos en el teléfono también provocaba que la aplicación se pegara dos mil años para iniciarse. ¿Cómo atajé el problema? Pues tuve que incluir varios sistemas, el primero usar un hilo que impidiera que la aplicación se cerrara, ya que si el hilo principal de la actividad no responde el sistema lo da por muerto y te lo cierra. A ésto lo acompañé con una animación de carga con un gif del circulito dando vueltas, permitiendo además que el usuario pudiera al menos manipular la aplicación y éste no pensara que la aplicación estuviera colgada. Luego, lo siguiente que implementé fue que las imágenes cargadas fueran optimizadas reduciendo el tamaño de éstas, de ésta forma el consumo de recursos mejora notablemente. Y por último crear una caché, y ésto se traduce en que las imágenes se almacenan por primera vez en la aplicación y siguientes inicios con la aplicación mejoran la velocidad mostrando instantáneamente las imágenes, claro que pagando el precio de reducir memoria de almacenamiento.

Hay que tener en cuenta, que es necesario comprobar si hay espacio suficiente para crear un caché o adaptar el espacio que tengamos libre para meter las imágenes que podamos. También es necesario incluir un sistema que compruebe si hubo actualización con las imágenes incluyendo algún sistema que compruebe las imágenes, y yo al final lo que hice para no complicarme la vida es que la aplicación sólo cuando pasara 24 horas actualizaba nuevamente las imágenes, pero eso ya lo planteas como necesites, a lo mejor en tú caso no lo necesitas.

Espero que mi experiencia pueda darte alguna idea para mejorar resolver ese problema que tienes.

como creaste la cache?
En línea

srWhiteSkull


Desconectado Desconectado

Mensajes: 444



Ver Perfil WWW
Re: Programación para android
« Respuesta #5 en: 20 Abril 2019, 15:36 pm »

Qués es una caché? Ficheros.

Por ejemplo te bajas una imagen llamada "perfil". Pues lo único que haces es volcar esa imagen a un fichero, "perfil.jpg". Luego en la siguiente inicialización antes de bajarte la imagen compruebas si existe "perfil.jpg", de ser así la cargas como un fichero normal y pasas esa imagen al componente drawable pertinente.

Aunque en apariencia puede parecer sencillo hay bastante complejidad. Yo para evitar que se detuviera la aplicación disponía de una clase que hacía ésto y que procesaba en un hilo, por lo que podían lanzarse muchísimos hilos a la vez, uno detrás de otro, con la suerte de que tenían un tiempo de vida de unos pocos segundos o menos dependiendo de la imagen. Se consumían recursos pero luego se liberaban.

Posiblemente existan librerías de terceros que hagan lo mismo pero muchas veces me gusta reinventar la rueda y hacerlo todo por mi cuenta, al fin y al cabo la clase sólo me supuso como 200 líneas de código.

« Última modificación: 20 Abril 2019, 15:59 pm por srWhiteSkull » En línea

yuimugi912

Desconectado Desconectado

Mensajes: 20



Ver Perfil
Re: Programación para android
« Respuesta #6 en: 20 Abril 2019, 16:54 pm »

Qués es una caché? Ficheros.

Por ejemplo te bajas una imagen llamada "perfil". Pues lo único que haces es volcar esa imagen a un fichero, "perfil.jpg". Luego en la siguiente inicialización antes de bajarte la imagen compruebas si existe "perfil.jpg", de ser así la cargas como un fichero normal y pasas esa imagen al componente drawable pertinente.

Aunque en apariencia puede parecer sencillo hay bastante complejidad. Yo para evitar que se detuviera la aplicación disponía de una clase que hacía ésto y que procesaba en un hilo, por lo que podían lanzarse muchísimos hilos a la vez, uno detrás de otro, con la suerte de que tenían un tiempo de vida de unos pocos segundos o menos dependiendo de la imagen. Se consumían recursos pero luego se liberaban.

Posiblemente existan librerías de terceros que hagan lo mismo pero muchas veces me gusta reinventar la rueda y hacerlo todo por mi cuenta, al fin y al cabo la clase sólo me supuso como 200 líneas de código.




entiendo gracias  ;D , de todas formas android te obliga a usar threads cuando pones sockets o conexiones asi que solo abria que ampliar la clase :P
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Software de programacion para android
Desarrollo Web
Shell Root 1 2,707 Último mensaje 4 Marzo 2013, 07:01 am
por #!drvy
Herramientas de programación para Android
Android
Shell Root 2 4,540 Último mensaje 10 Mayo 2013, 23:16 pm
por Shell Root
Ayuda con programacion para android.
Dudas Generales
Diaf96 0 1,949 Último mensaje 12 Agosto 2013, 17:01 pm
por Diaf96
Programación visual para android
Programación General
paradoxx-adum 2 2,534 Último mensaje 1 Octubre 2015, 13:21 pm
por Becerra
Lenguaje de Programación para Android?
Programación General
Binary_User 2 3,280 Último mensaje 19 Febrero 2016, 12:32 pm
por Binary_User
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines