Almacenamiento de datos de Android (texto+imagen)

Quiero crear una aplicación de Android que contenga los siguientes datos:

Texto en cuatro idiomas diferentes, una fecha y una imagen.

Mi problema es que no sé cuál es la mejor manera de almacenar esos datos. Deben estar disponibles para el usuario de lambda pero no fácilmente visibles (--> no en la tarjeta SD, por ejemplo). Sin imagen, directamente hubiera elegido sqlite pero... con ella, ¿qué es lo mejor?

¿activos? sqlite (+ imagen como blob)? sqlite (+ ruta a la imagen)? XML? ¿JSON?

Además, quiero elegir al azar una de mis aproximadamente 1000 entradas y esas entradas probablemente serán insertadas por alguien que tenga pocos conocimientos de informática.

preguntado el 03 de mayo de 12 a las 09:05

también puede almacenar la imagen en sqlite.... -

¿Alguna razón para no usar el sistema de recursos (también funciona para imágenes localizadas)? desarrollador.android.com/guide/topics/resources/localization.html -

Por supuesto, la localización es buena con el sistema de recursos, pero es difícil de mantener con un enlace a una fecha y una imagen. -

2 Respuestas

Los archivos que se almacenan dentro de la carpeta de su aplicación son privados para su aplicación y no se puede acceder a ellos fácilmente.

Lo más fácil sería tener el texto como xml y las imágenes como activos dentro de la carpeta de su aplicación.

contestado el 03 de mayo de 12 a las 09:05

Estructura XML como esa (perdón por el formato): <esp></esp> <fr></fr> <it></it> ??? - disfrutado

Si las imágenes son estáticas (es decir, no descargadas pero distribuidas con su aplicación), las pondría en activos (dibujables).

Con respecto al texto, puede usar strings.xml y localizarlo para los otros 3 idiomas.

Espero haber entendido tu problema aquí.

contestado el 03 de mayo de 12 a las 09:05

El problema es que es difícil de mantener con 1000 objetos. 1000 entradas en strings.xml ya son caóticas, pero si esas entradas también tienen un enlace a un Drawable, ¿será un desastre? ¿no crees? - disfrutado

OK ... de su pregunta parecía que tenía 4 textos, una imagen y una fecha. Será difícil de administrar, pero strings.xml es la forma recomendada de localizar texto AFAIK. - tony

Algo que no dije antes es que quiero elegir al azar una de mis 1000 entradas. ¿Me recomendaría que coloque esos objetos en una matriz de cadenas con una identificación? y ¿cómo podría vincularlos a la imagen? También podría ser interesante tener un título para cada entrada. Podría crear un archivo XML como este en los activos: <esp></esp> <fr></fr> <it></it> - disfrutado

o la misma estructura en un db? En mi opinión, almacenar imágenes como blob en una base de datos es más agradable pero mucho más difícil de insertar. o directorios en activos como ese? aaaammdd/image.jpg /text_eng.txt /text_fr.txt /text_it.txt /title_eng.txt /title_fr.txt /title_it.txt Es más difícil de acceder pero mucho más fácil de mantener. Otro punto es que yo no crearé las entradas y que lo hará alguien con pocos conocimientos de informática. La versión del directorio sería más fácil... - disfrutado

Con ese volumen, sqlite sería el camino a seguir, como dijiste 1 fila para 1 entrada (imagen, 4 campos de texto, fecha). ¿Cómo te imaginas que se poblará la base de datos? ¿Por una pantalla de entrada en el dispositivo? o por alguien antes del lanzamiento? - tony

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.