No entiendo, tu quieres una pagina como codeacademy para aprender a programar android o quieres una pagina para el celular?
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
#21
Dudas y pedidos generales / Re:Web similar a codeacademy para android
Febrero 28, 2015, 01:39:12 PM #22
Wargames y retos / Re:RETO XSS [Facil]
Febrero 22, 2015, 10:39:36 AM
Te mande la url por privado!
Gracias por el reto
Saludos,, Cronos.-
Gracias por el reto
Saludos,, Cronos.-
#23
Desarrollo móvil / Buenas practicas con Bitmap
Febrero 17, 2015, 11:57:46 AM
Buenas practicas con Bitmap
Cargando grandes mapas de bits de manera eficiente
Muchas veces tratamos de cargar una imagen de tamaño muy grande en un espacio muy pequeño, y esto funciona, pero no de la manera que esperamos. Al crear un listView con una colección de Bitmap mal implementado, nos daremos cuenta que al deslizar nuestra lista, esta se torna pesada y torpe. Esto es por el tamaño de las imágenes que hemos cargado en cada Bitmap.
Por ejemplo, no vale la pena cargar una imagen de 1024x768 píxeles en la memoria si se mostrará en una miniatura de 128x96 píxeles en un imageView. La mejor practica para evitar esto es reducir el tamaño de imagen que se va a crear en el Bitmap al que se calcula que uno va a usar. Para esto utilizamos la opción inSampleSize, esta opción lo que hace es indica la escala que se utilizara para reducir dicha imagen. Por ejemplo, una imagen con resolución 2048x1536 que se cargara con un inSampleSize de 4 produce un mapa de bits de aproximadamente 512x384, cargando esto en memoria utiliza 0.75MB en lugar de 12 MB para la imagen completa.
Una pregunta común es, como saber que valor al inSampleSize debo colocar? Pues hay un método para calcular dicho tamaño de manera automática, que es el siguiente.
Este método recibe como parámetros el elemento options que utilizaremos para crear nuestro Bitmap, el Width y Height que deseamos que tenga nuestro Bitmap y devuelve un valor de tipo int el cual sera nuestro valor a colocar en inSampleSize para obtener este tamaño deseado.
Para utilizar este método, primero debemos decodificar con la opción inJustDecodeBounds establecida en true, se pasan el options y luego decodificar de nuevo usando el nuevo valor de inSampleSize y inJustDecodeBounds establecido esta ves en false.
Este método hace que sea fácil de cargar un mapa de bits de tamaño arbitrariamente grande en un ImageView que muestra una miniatura de 100x100 píxeles, como se muestra en el siguiente código de ejemplo:
Ahora bien una ves implementado esto en el caso que dijimos anteriormente se puede notar una gran diferente la fluidez al desplazar nuestra lista, pero esto no queda acá. Las personas que no nos conformamos con poco notaremos que aun la lista de desplaza con cierto retraso que no es nada agradable a la vista. Esto sucede porque cada ves que deslizamos y mostramos los items ocultos en la lista se vuelve a calcular y a cargar la imagen en los Bitmap y todo este proceso se produce en el hilo principal, lo cual tenemos que evitar, entonces el siguiente paso es hacer este proceso de cargado en un hilo secundario, para ello utilizaremos AsyncTask.
Procesando Bitmap en un hilo secundario
La clase AsyncTask proporciona una manera fácil de ejecutar algún trabajo en un subproceso de fondo y publicar los resultados de vuelta en el subproceso de interfaz de usuario. Para usarlo, se crea una subclase y se sobrescriben los métodos proporcionados. Un ejemplo de la carga de una imagen de gran tamaño en un imageView usando AsyncTask y el método creado anteriormente decodeSampledBitmapFromResource ():
Podemos observar que el constructor recibe un imageView el cual sera el que utilizaremos para cargar el Bitmap, el método doInBackground() ejecuta el método decodeSampledBitmapFromResource() en segundo plano y retorna un Bitmap el cual lo va a recibir el método onPostExecute() el cual se encargar de plasmar los resultados en la interfaz principal.
Para comenzar a cargar el mapa de bits de forma asíncrona, basta con crear una nueva tarea y ejecutarlo:
Observamos que la ejecutar la tarea en segundo plano se le pasa una variable resId, el cual es el id con la ruta de la imagen a cagar.
Almacenando un Bitmap en cache
Al ver los resultados que nos arroja el paso anterior podemos observar que el deslizamiento de nuestra lista es muy veloz, pero que tiene un pequeño problema. Las imágenes tardan en cargarse, y esto es algo esperado ya que el proceso de cargar los item de la lista en el hilo principal no van a esperar ah que termine el proceso en el hilo secundario, entonces se formara una desincronización a la hora de cargar los datos de cada item, por mas que simplemente sean microsegundos, esto es algo que se nota notablemente en la UI e irritaría mucho al usuario.
Entonces como solucionamos este problema? Cargando cada Bitmap en cache.
Una memoria caché ofrece un acceso rápido a los Bitmap a costa de ocupar memoria valiosa de la aplicación. La clase LruCache esta especialmente adecuado para la tarea de Bitmap en caché.
Con el fin de elegir un tamaño adecuado para el LruCache, un número de factores deben ser tomados en consideración, por ejemplo:
- ¿Cuántas imágenes estará en pantalla a la vez? ¿Cuántos tienen que estar disponibles listos para entrar en la pantalla?
- ¿Cuál es el tamaño de la pantalla y la densidad del dispositivo? Un dispositivo de alta densidad (xhdpi) como Galaxy Nexus tendrá un caché más grande para mantener el mismo número de imágenes en la memoria en comparación con un dispositivo como Nexus S (IPAP).
- ¿Con qué frecuencia se accederá a las imágenes? ¿Algunos acceder con mayor frecuencia que los demás? Si es así, tal vez usted puede querer mantener ciertos artículos siempre en la memoria o incluso tener varios objetos LruCache para diferentes grupos de mapas de bits.
- ¿Puede equilibrar la calidad contra cantidad? A veces puede ser más útil para almacenar un mayor número de Bitmap de menor calidad.
No hay un tamaño específico o fórmula que se adapte a todas las aplicaciones, es cuestión de cada uno analizar su consumo y llegar a una solución adecuada. Una caché que es demasiado pequeña causa sobrecarga adicional sin ningún beneficio, una memoria caché que es demasiado grande puede devolver excepciones java.lang.OutOfMemory y dejar al resto de su aplicación poca memoria para trabajar. Un ejemplo de la creación de un LruCache para Bitmap:
Ahora cuando vallamos a cargar un Bitmap en un imageView, primero comprobaremos que este Bitmap no esta ya cargado en cache. En caso de que este en cache, evitaremos todo el proceso de redimensionamiento echo anteriormente y simplemente lo traeremos de la cache, caso contrario haremos los pasos mencionados anteriormente y almacenaremos ese Bitmap en cache si no existe, para que la próxima ves que tengamos que cargarlo, lo traigamos de cache.
En la clase BitmapWorkerTask creada anteriormente solo debemos agregar la linea de código que se encarga de cargar este nuevo Bitmap en cache.
Y eso seria todo. Ya tenemos una lista que carga por única vez los Bitmap y luego hace petición a cache, la eficiencia de esto es muy grande y los resultados son muy notorios.
Para realizar este manual me base en la información oficial de Google la cual colocare a continuación.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Autor: Leandro Vitale
Saludos,, Cronos.-
Cargando grandes mapas de bits de manera eficiente
Muchas veces tratamos de cargar una imagen de tamaño muy grande en un espacio muy pequeño, y esto funciona, pero no de la manera que esperamos. Al crear un listView con una colección de Bitmap mal implementado, nos daremos cuenta que al deslizar nuestra lista, esta se torna pesada y torpe. Esto es por el tamaño de las imágenes que hemos cargado en cada Bitmap.
Por ejemplo, no vale la pena cargar una imagen de 1024x768 píxeles en la memoria si se mostrará en una miniatura de 128x96 píxeles en un imageView. La mejor practica para evitar esto es reducir el tamaño de imagen que se va a crear en el Bitmap al que se calcula que uno va a usar. Para esto utilizamos la opción inSampleSize, esta opción lo que hace es indica la escala que se utilizara para reducir dicha imagen. Por ejemplo, una imagen con resolución 2048x1536 que se cargara con un inSampleSize de 4 produce un mapa de bits de aproximadamente 512x384, cargando esto en memoria utiliza 0.75MB en lugar de 12 MB para la imagen completa.
Una pregunta común es, como saber que valor al inSampleSize debo colocar? Pues hay un método para calcular dicho tamaño de manera automática, que es el siguiente.
Este método recibe como parámetros el elemento options que utilizaremos para crear nuestro Bitmap, el Width y Height que deseamos que tenga nuestro Bitmap y devuelve un valor de tipo int el cual sera nuestro valor a colocar en inSampleSize para obtener este tamaño deseado.
Para utilizar este método, primero debemos decodificar con la opción inJustDecodeBounds establecida en true, se pasan el options y luego decodificar de nuevo usando el nuevo valor de inSampleSize y inJustDecodeBounds establecido esta ves en false.
Este método hace que sea fácil de cargar un mapa de bits de tamaño arbitrariamente grande en un ImageView que muestra una miniatura de 100x100 píxeles, como se muestra en el siguiente código de ejemplo:
Ahora bien una ves implementado esto en el caso que dijimos anteriormente se puede notar una gran diferente la fluidez al desplazar nuestra lista, pero esto no queda acá. Las personas que no nos conformamos con poco notaremos que aun la lista de desplaza con cierto retraso que no es nada agradable a la vista. Esto sucede porque cada ves que deslizamos y mostramos los items ocultos en la lista se vuelve a calcular y a cargar la imagen en los Bitmap y todo este proceso se produce en el hilo principal, lo cual tenemos que evitar, entonces el siguiente paso es hacer este proceso de cargado en un hilo secundario, para ello utilizaremos AsyncTask.
Procesando Bitmap en un hilo secundario
La clase AsyncTask proporciona una manera fácil de ejecutar algún trabajo en un subproceso de fondo y publicar los resultados de vuelta en el subproceso de interfaz de usuario. Para usarlo, se crea una subclase y se sobrescriben los métodos proporcionados. Un ejemplo de la carga de una imagen de gran tamaño en un imageView usando AsyncTask y el método creado anteriormente decodeSampledBitmapFromResource ():
Podemos observar que el constructor recibe un imageView el cual sera el que utilizaremos para cargar el Bitmap, el método doInBackground() ejecuta el método decodeSampledBitmapFromResource() en segundo plano y retorna un Bitmap el cual lo va a recibir el método onPostExecute() el cual se encargar de plasmar los resultados en la interfaz principal.
Para comenzar a cargar el mapa de bits de forma asíncrona, basta con crear una nueva tarea y ejecutarlo:
Observamos que la ejecutar la tarea en segundo plano se le pasa una variable resId, el cual es el id con la ruta de la imagen a cagar.
Almacenando un Bitmap en cache
Al ver los resultados que nos arroja el paso anterior podemos observar que el deslizamiento de nuestra lista es muy veloz, pero que tiene un pequeño problema. Las imágenes tardan en cargarse, y esto es algo esperado ya que el proceso de cargar los item de la lista en el hilo principal no van a esperar ah que termine el proceso en el hilo secundario, entonces se formara una desincronización a la hora de cargar los datos de cada item, por mas que simplemente sean microsegundos, esto es algo que se nota notablemente en la UI e irritaría mucho al usuario.
Entonces como solucionamos este problema? Cargando cada Bitmap en cache.
Una memoria caché ofrece un acceso rápido a los Bitmap a costa de ocupar memoria valiosa de la aplicación. La clase LruCache esta especialmente adecuado para la tarea de Bitmap en caché.
Con el fin de elegir un tamaño adecuado para el LruCache, un número de factores deben ser tomados en consideración, por ejemplo:
- ¿Cuántas imágenes estará en pantalla a la vez? ¿Cuántos tienen que estar disponibles listos para entrar en la pantalla?
- ¿Cuál es el tamaño de la pantalla y la densidad del dispositivo? Un dispositivo de alta densidad (xhdpi) como Galaxy Nexus tendrá un caché más grande para mantener el mismo número de imágenes en la memoria en comparación con un dispositivo como Nexus S (IPAP).
- ¿Con qué frecuencia se accederá a las imágenes? ¿Algunos acceder con mayor frecuencia que los demás? Si es así, tal vez usted puede querer mantener ciertos artículos siempre en la memoria o incluso tener varios objetos LruCache para diferentes grupos de mapas de bits.
- ¿Puede equilibrar la calidad contra cantidad? A veces puede ser más útil para almacenar un mayor número de Bitmap de menor calidad.
No hay un tamaño específico o fórmula que se adapte a todas las aplicaciones, es cuestión de cada uno analizar su consumo y llegar a una solución adecuada. Una caché que es demasiado pequeña causa sobrecarga adicional sin ningún beneficio, una memoria caché que es demasiado grande puede devolver excepciones java.lang.OutOfMemory y dejar al resto de su aplicación poca memoria para trabajar. Un ejemplo de la creación de un LruCache para Bitmap:
Ahora cuando vallamos a cargar un Bitmap en un imageView, primero comprobaremos que este Bitmap no esta ya cargado en cache. En caso de que este en cache, evitaremos todo el proceso de redimensionamiento echo anteriormente y simplemente lo traeremos de la cache, caso contrario haremos los pasos mencionados anteriormente y almacenaremos ese Bitmap en cache si no existe, para que la próxima ves que tengamos que cargarlo, lo traigamos de cache.
En la clase BitmapWorkerTask creada anteriormente solo debemos agregar la linea de código que se encarga de cargar este nuevo Bitmap en cache.
Y eso seria todo. Ya tenemos una lista que carga por única vez los Bitmap y luego hace petición a cache, la eficiencia de esto es muy grande y los resultados son muy notorios.
Para realizar este manual me base en la información oficial de Google la cual colocare a continuación.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Autor: Leandro Vitale
Saludos,, Cronos.-
#24
Presentaciones y cumpleaños / Re:Hola Underc0de!!
Febrero 07, 2015, 12:13:18 PM
Jaja hasta que te presentaste chanta! A ver cuando veo un aporte tuyo pero del nivel que tenes, no esos simples sqli
Abrazo bro y 'bienvenido'
Saludos,, Cronos.-
Abrazo bro y 'bienvenido'
Saludos,, Cronos.-
#25
Cursos, manuales y libros / El gran libro de Android Avanzado [Jesus Tomas]
Febrero 04, 2015, 11:11:32 AMBuenos días ahora les dejo la versión avanzada del libro!
Sinceramente yo no lo he leído ya que me eh ido perfeccionando en Android con Google, pero de todos modos es un libro para recomendar.
Resumen del libro
El libro que tiene en sus manos es una guía para aquellos programadores de Android que, teniendo nociones básicas, quieran profundizar en algunos aspectos de especial interés. Diseño avanzado del interfaz de usuario: Aprenda todas las novedades incorporadas en las últimas versiones de Android, como Fragments, ActionBar, bar ra de búsquedas, animación de propiedades...Personalice sus propias vistas y cree Widgets de escritorio. Hilos de ejecución: En Android esimprescindible dominar el uso de threads. Use AsyncTask y programe animaciones gráficas con SurfaceView. Bluetooth: Saque provecho a esta tecnología para interconectar dos dispositivos Android, o un dispositivo Android con un PC. Servicios en la nube: Utilice en sus aplicaciones las notificaciones Push, almacenamiento en la nube con Google Drive y el servicio de Backup de Google. Aplicaciones Web: Aprenda a integrar una aplicación basada en HTML5, CSS3 y JavaScript dentro de Android. Conozca las alternativas a la programación multiplataforma para móviles. Programación en código nativo: Use NDK para escribir directamente sus algoritmos en C/C++ y compílelos a código nativo del procesador. Redes sociales: Integre Facebook y Twitter en sus aplicaciones. Ingeniería inversa: Aprenda a jaquear aplicaciones para evitar que lo hagan con las suyas. Estudie el código y modifique aplicaciones de terceros. Ofusque el código e incluya licencias de Google Play. El libro propone un aprendizaje activo, con actividades, muchas a través de Internet: - poli[Media]Videos elaborados por los autores. -Ejercicio paso a paso: La mejor forma de aprender es practicando. -Práctica: Para afianzar lo aprendido hay que practicar. -Recursos adicionales: Localice rápidamente la información clave -Preguntas de repaso y reflexión: ¿Lo ha entendido todo correctamente
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Saludos,, Cronos.-
Sinceramente yo no lo he leído ya que me eh ido perfeccionando en Android con Google, pero de todos modos es un libro para recomendar.
Resumen del libro
El libro que tiene en sus manos es una guía para aquellos programadores de Android que, teniendo nociones básicas, quieran profundizar en algunos aspectos de especial interés. Diseño avanzado del interfaz de usuario: Aprenda todas las novedades incorporadas en las últimas versiones de Android, como Fragments, ActionBar, bar ra de búsquedas, animación de propiedades...Personalice sus propias vistas y cree Widgets de escritorio. Hilos de ejecución: En Android esimprescindible dominar el uso de threads. Use AsyncTask y programe animaciones gráficas con SurfaceView. Bluetooth: Saque provecho a esta tecnología para interconectar dos dispositivos Android, o un dispositivo Android con un PC. Servicios en la nube: Utilice en sus aplicaciones las notificaciones Push, almacenamiento en la nube con Google Drive y el servicio de Backup de Google. Aplicaciones Web: Aprenda a integrar una aplicación basada en HTML5, CSS3 y JavaScript dentro de Android. Conozca las alternativas a la programación multiplataforma para móviles. Programación en código nativo: Use NDK para escribir directamente sus algoritmos en C/C++ y compílelos a código nativo del procesador. Redes sociales: Integre Facebook y Twitter en sus aplicaciones. Ingeniería inversa: Aprenda a jaquear aplicaciones para evitar que lo hagan con las suyas. Estudie el código y modifique aplicaciones de terceros. Ofusque el código e incluya licencias de Google Play. El libro propone un aprendizaje activo, con actividades, muchas a través de Internet: - poli[Media]Videos elaborados por los autores. -Ejercicio paso a paso: La mejor forma de aprender es practicando. -Práctica: Para afianzar lo aprendido hay que practicar. -Recursos adicionales: Localice rápidamente la información clave -Preguntas de repaso y reflexión: ¿Lo ha entendido todo correctamente
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Saludos,, Cronos.-
#26
Cursos, manuales y libros / El Gran Libro de Android, Tomás Gironés, Jesús (Segunda Edición)
Febrero 02, 2015, 01:02:21 PMLes dejo este libro, el cual fue uno de los que utilice para iniciarme en la programación de aplicaciones nativas. Es un gran libro y sirve mucho para iniciarse! Espero que les sirva
El Gran Libro de Android, Tomás Gironés, Jesús (Segunda Edición)
PDF | Spanish | 116 MB | Tomas Girones, Jesus | Editorial: MARCOMBO, S.A. | ISBN: 8426718329 | Páginas: 404 | Edición: 2ª | 1 de mayo de 2012
Contenido:
Lista de acrónimos
¿Cómo leer este libro?
CAPÍTULO 1. Visión general y entorno de desarrollo 21
1.1. ¿Qué hace que Android sea especial? . 22
1.2. Los orígenes . 23
1.3. Comparativa con otras plataformas 24
1.4. Arquitectura de Android. 26
1.4.1. El núcleo Linux 27
1.4.2. Runtime de Android . 27
1.4.3. Librerías nativas 28
1.4.4. Entorno de aplicación 28
1.4.5. Aplicaciones 29
1.5. Instalación del entorno de desarrollo 29
1.5.1. Instalación de los componentes por separado 30
1.5.1.1. Instalación de la máquina virtual Java . 30
1.5.1.2. Instalación de Eclipse . 30
1.5.1.3. Instalar Android SDK de Google 31
1.5.2. Instalación del plug-in Android para Eclipse (ADT) . 35
1.5.3. Instalación con MOTODEV Studio 36
1.6. Las versiones de Android y niveles de API . 38
1.6.1. Android 1.0 Nivel de API 1 (septiembre 2008) 39
1.6.2. Android 1.1 Nivel de API 2 (febrero 2009) 39
1.6.3. Android 1.5 Nivel de API 3 (abril 2009, Cupcake) . 39
1.6.4. Android 1.6 Nivel de API 4 (diciembre 2009, Donut) . 39
1.6.5. Android 2.0 Nivel de API 5 (octubre 2009, Éclair) . 40
1.6.6. Android 2.1 Nivel de API 7 (enero 2010, Éclair) 40
1.6.7. Android 2.2 Nivel de API 8 (mayo 2010, Froyo) 40
1.6.8. Android 2.3 Nivel de API 9 (diciembre 2010, Gingerbread) 41
1.6.9. Android 3.0 Nivel de API 11 (febrero 2011, Honeycomb) . 41
1.6.10. Android 3.1 Nivel de API 12 (mayo 2011) 42viii
1.6.11. Android 3.2 Nivel de API 13 (julio 2011) . 42
1.6.12. Android 4.0 Nivel de API 14 (octubre 2011, Ice Cream Sandwich) 43
1.6.13. Android 4.0.3 Nivel de API 15 (diciembre 2011) 43
1.6.14. Elección de la plataforma de desarrollo . 43
1.7. Creación de un primer programa 45
1.7.1. Creación del proyecto 45
1.8. Ejecución del programa. 49
1.8.1. Ejecución en el emulador 49
1.8.2. Ejecución en un terminal real 49
1.9. Elementos de un proyecto Android . 51
1.10. Componentes de una aplicación . 53
1.10.1. Vista (View) 53
1.10.2. Layout 53
1.10.3. Actividad (Activity) 54
1.10.4. Servicio (Service) 54
1.10.5. Intención (Intent) . 54
1.10.6. Receptor de anuncios (Broadcast receiver) . 54
1.10.7. Proveedores de Contenido (Content Provider) 55
1.11. Documentación y ApiDemos . 55
1.11.1. Donde encontrar documentación . 55
1.11.2. La aplicación ApiDemos . 55
1.12. Depurar 57
1.12.1. Depurar con Eclipse . 57
1.12.2. Depurar con mensajes Log. 58
CAPÍTULO 2. Diseño de la interfaz de usuario: Vistas y Layouts 61
2.1. Creación de una interfaz de usuario por código . 62
2.2. Creación de una interfaz de usuario usando XML 63
2.2.1. Edición visual de las vistas 66
2.3. Layouts . 70
2.4. Una aplicación de ejemplo: Asteroides . 76
2.4.1. Recursos alternativos 78
2.5. Estilos y temas . 82
2.5.1. Los estilos . 83
2.5.1.1. Heredar de un estilo propio . 83
2.5.2. Los temas . 84
2.6. Uso práctico de Vistas y Layouts 85
2.6.1. Acceder y modificar las propiedades de las vistas por código 87
2.7. Uso de TabLayout 89
2.7.1. Uso de la etiqueta en Layouts 91
CAPÍTULO 3. Actividades e Intenciones 93
3.1. Creación de nuevas actividades . 94
3.2. Comunicación entre actividades . 98
3.3. Añadiendo un menú 100
3.4. Creación y uso de iconos 102
3.5. Añadiendo preferencias de usuario 105
3.5.1. Organizando preferencias . 108
3.5.2. Como se almacenan las preferencias de usuario . 109
3.5.3. Accediendo a los valores de las preferencias . 110
3.6. Añadiendo una lista de puntaciones en Asteroides 111
3.7. La vista ListView . 113
3.7.1. Un ListView que visualiza una lista de Strings 115
3.7.2. Un ListView que visualiza Layouts personalizados . 116
3.7.3. Un ListView con nuestro propio adaptador . 118
3.7.4. Detectar una pulsación sobre un elemento de la lista . 120
3.8. Las Intenciones 121
3.8.1. La etiqueta . 126
CAPÍTULO 4. Gráficos en Android 127
4.1. Clases para gráficos en Android . 128
4.1.1. Canvas 128
4.1.2. Paint 130
4.1.2.1. Definición de colores . 131
4.1.3. Path 133
4.1.4. Drawable . 135x
4.1.4.1. BitmapDrawable 136
4.1.4.2. GradienDrawable 137
4.1.4.3. TransitionDrawable . 138
4.1.4.4. ShapeDrawable 138
4.1.4.5. AnimationDrawable . 139
4.2. Creación de una vista en un fichero independiente 140
4.3. Creando la actividad principal de Asteroides 143
4.3.1. La clase Gráfico . 145
4.3.2. La clase VistaJuego 146
4.3.3. Introduciendo la nave en VistaJuego 148
4.4. Representación de gráficos vectoriales en Asteroides . 150
4.5. Animaciones . 152
4.5.1. Animaciones Tween 153
4.5.2. Animaciones de propiedades 156
CAPÍTULO 5. Entradas en Android: teclado, pantalla táctil y sensores 157
5.1. Manejando eventos de usuario . 158
5.1.1. Escuchador de eventos . 158
5.1.2. Manejadores de eventos . 159
5.2. El teclado 159
5.3. La pantalla táctil . 162
5.3.1. Manejo de la pantalla táctil con multi-touch 165
5.3.2. Manejo de la nave con la pantalla táctil 168
5.4. Gestures . 169
5.4.1. Creación y uso de una librería de gestures . 170
5.4.2. Añadiendo gestures a Asteroides 174
5.5. Los sensores 176
5.5.1. Un programa que muestra los sensores disponibles
y sus valores en tiempo real 181
5.5.2. Utilización de los sensores en Asteroides . 183
5.6. Uso de hilos de ejecución (Threads) . 184
5.6.1. Introduciendo movimiento en Asteroides 185
5.7. Introduciendo un misil en Asteroides 187
CAPÍTULO 6. Multimedia y ciclo de vida de una actividad 191
6.1. Ciclo de vida de una actividad 192
6.1.1. ¿Qué proceso se elimina? . 198
6.1.2. Guardando el estado de una actividad 200
6.2. Utilizando multimedia en Android 202
6.3. La vista VideoView 205
6.4. La clase MediaPlayer 207
6.4.1. Reproducción de audio con MediaPlayer 207
6.5. Un reproductor multimedia pasó a paso . 208
6.6. Introduciendo efectos de audio con SoundPool . 215
6.7. Grabación de audio . 217
CAPÍTULO 7. Seguridad y posicionamiento 223
7.1. Los tres pilares de la seguridad en Android 224
7.1.1. Usuario Linux y acceso a ficheros . 225
7.1.2. El esquema de permisos en Android . 225
7.1.3. Permisos definidos por el usuario en Android . 227
7.2. Localización 231
7.2.1. Emulación del GPS con Eclipse 236
7.3. Google Maps 237
7.3.1. Obtención de una clave Google Maps 237
7.4. Fragmentando los asteroides 242
CAPÍTULO 8. Servicios, notificaciones y receptores de anuncios 245
8.1. Introducción a los servicios en Android . 246
8.1.1. Ciclo de vida de un servicio. 247
8.1.2. Permisos . 249
8.2. Un servicio para ejecución en segundo plano. . 249
8.2.1. Los métodos onStartCommad() y onStart() 252
8.3. Las notificaciones de la barra de estado . 254
8.3.1. Configurando tipos de avisos en las notificaciones . 257
8.3.1.1. Asociar un sonido 257
8.3.1.2. Añadiendo vibración . 257xii
8.3.1.3. Añadiendo parpadeo de LED 257
8.4. Receptores de anuncios 258
8.4.1. Receptor de anuncios registrado en AndroidManifest.xml 259
8.4.2. Arrancar un servicio tras cargar el sistema operativo . 265
8.5. Un servicio como mecanismo de comunicación entre aplicaciones . 266
8.5.1. Crear la interfaz en AIDL . 267
8.5.2. Implementar la interfaz 268
8.5.3. Publicar la interfaz en un servicio 269
8.5.4. Llamar a una interfaz remoto . 270
CAPÍTULO 9. Almacenamiento de datos 273
9.1. Alternativas para guardar datos permanentemente en Android . 274
9.2. Añadiendo puntuaciones en Asteroides 275
9.3. Preferencias . 277
9.4. Accediendo a ficheros . 280
9.4.1. Sistema interno de ficheros . 281
9.4.2. Sistema de almacenamiento externo 283
9.4.2.1. Verificando acceso a la memoria externa 285
9.4.2.2. Almacenando ficheros específicos de tu aplicación
en el almacenamiento externo 286
9.4.2.3. Almacenando ficheros compartidos en el almacenamiento externo 287
9.4.3. Acceder a un fichero de los recursos 288
9.5. Trabajando con XML . 289
9.5.1. Procesando XML con SAX 290
9.5.2. Procesando XML con DOM . 296
9.6. Bases de datos . 301
9.6.1. Los métodos query() y rawQuery() 304
9.7. Utilizando la clase ContentProvider 305
9.7.1. Conceptos básicos 306
9.7.1.1. El modelo de datos . 306
9.7.1.2. Las URI . 306
9.7.2. Acceder a la información de un ContentProvider 307
9.7.2.1. Leer información de un ContentProvider . 308
9.7.2.2. Escribir información en un ContentProvider . 311
9.7.2.3. Borrar y modificar elementos de un ContentProvider . 312
9.7.3. Creación de un ContentProvider . 312
9.7.3.1. Definir la estructura de almacenamiento del ContentProvider . 313
9.7.3.2. Extendiendo la clase ContentProvider . 314
9.7.3.3. Declarar el ContentProvider en AndroidManifest.xml 318
9.7.4. Acceso a PuntuacionesProvider desde Asteroides . 319
CAPÍTULO 10. Internet: sockets, HTTP y servicios web 321
10.1. Comunicaciones en Internet mediante sockets 322
10.1.1. La arquitectura cliente/servidor 322
10.1.2. ¿Qué es un socket? 322
10.1.2.1. Sockets stream (TCP) . 323
10.1.2.2. Sockets datagram (UDP) . 323
10.1.3. Un ejemplo de un cliente / servidor de ECHO 324
10.1.4. Un servidor por sockets para las puntuaciones 326
10.2. La web y el protocolo HTTP 330
10.2.1. El protocolo HTTP 330
10.2.2. Versión 1.0 del protocolo HTTP . 332
10.2.3. Utilizando HTTP desde Android . 334
10.3. Servicios web . 339
10.3.1. Alternativas en los servicios web 339
10.3.1.1. Servicios web basados en SOAP 340
10.3.1.2. Servicios web basados en REST 341
10.3.2. Acceso a servicios web de terceros 345
10.3.3. Diseño e implantación de nuestro servicio web 349
10.3.3.1. Instalación del servidor de servicios web 349
10.3.3.2. Creación un servicio web en Eclipse 351
10.3.3.3. Explorando el servicio web desde Eclipse 354
10.3.3.4. Explorando el servicio web desde HTML 358
10.3.3.5. Utilizando el servicio web desde Asteroides 360
CAPÍTULO 11. Publicar Aplicaciones 365
11.1. Preparar y testear tu aplicación 366
11.1.1. Preparar la aplicación para distintos tipos de dispositivo 366
11.1.2. Testear la aplicación 368
11.2. Crear un certificado digital y firmar la aplicación 370
11.3. Publicar la aplicación 372
11.3.1. Publicar en Internet 372
11.3.2. Publicar en Google Play Store 373
11.4. Asteroides: detectar victoria y derrota 377
ANEXO A. Referencia Java 379
ANEXO B. Referencia: la clase View y sus descendientes 391
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Fuente y contraseña: No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Saludos,, Cronos.-
El Gran Libro de Android, Tomás Gironés, Jesús (Segunda Edición)
PDF | Spanish | 116 MB | Tomas Girones, Jesus | Editorial: MARCOMBO, S.A. | ISBN: 8426718329 | Páginas: 404 | Edición: 2ª | 1 de mayo de 2012
Contenido:
Lista de acrónimos
¿Cómo leer este libro?
CAPÍTULO 1. Visión general y entorno de desarrollo 21
1.1. ¿Qué hace que Android sea especial? . 22
1.2. Los orígenes . 23
1.3. Comparativa con otras plataformas 24
1.4. Arquitectura de Android. 26
1.4.1. El núcleo Linux 27
1.4.2. Runtime de Android . 27
1.4.3. Librerías nativas 28
1.4.4. Entorno de aplicación 28
1.4.5. Aplicaciones 29
1.5. Instalación del entorno de desarrollo 29
1.5.1. Instalación de los componentes por separado 30
1.5.1.1. Instalación de la máquina virtual Java . 30
1.5.1.2. Instalación de Eclipse . 30
1.5.1.3. Instalar Android SDK de Google 31
1.5.2. Instalación del plug-in Android para Eclipse (ADT) . 35
1.5.3. Instalación con MOTODEV Studio 36
1.6. Las versiones de Android y niveles de API . 38
1.6.1. Android 1.0 Nivel de API 1 (septiembre 2008) 39
1.6.2. Android 1.1 Nivel de API 2 (febrero 2009) 39
1.6.3. Android 1.5 Nivel de API 3 (abril 2009, Cupcake) . 39
1.6.4. Android 1.6 Nivel de API 4 (diciembre 2009, Donut) . 39
1.6.5. Android 2.0 Nivel de API 5 (octubre 2009, Éclair) . 40
1.6.6. Android 2.1 Nivel de API 7 (enero 2010, Éclair) 40
1.6.7. Android 2.2 Nivel de API 8 (mayo 2010, Froyo) 40
1.6.8. Android 2.3 Nivel de API 9 (diciembre 2010, Gingerbread) 41
1.6.9. Android 3.0 Nivel de API 11 (febrero 2011, Honeycomb) . 41
1.6.10. Android 3.1 Nivel de API 12 (mayo 2011) 42viii
1.6.11. Android 3.2 Nivel de API 13 (julio 2011) . 42
1.6.12. Android 4.0 Nivel de API 14 (octubre 2011, Ice Cream Sandwich) 43
1.6.13. Android 4.0.3 Nivel de API 15 (diciembre 2011) 43
1.6.14. Elección de la plataforma de desarrollo . 43
1.7. Creación de un primer programa 45
1.7.1. Creación del proyecto 45
1.8. Ejecución del programa. 49
1.8.1. Ejecución en el emulador 49
1.8.2. Ejecución en un terminal real 49
1.9. Elementos de un proyecto Android . 51
1.10. Componentes de una aplicación . 53
1.10.1. Vista (View) 53
1.10.2. Layout 53
1.10.3. Actividad (Activity) 54
1.10.4. Servicio (Service) 54
1.10.5. Intención (Intent) . 54
1.10.6. Receptor de anuncios (Broadcast receiver) . 54
1.10.7. Proveedores de Contenido (Content Provider) 55
1.11. Documentación y ApiDemos . 55
1.11.1. Donde encontrar documentación . 55
1.11.2. La aplicación ApiDemos . 55
1.12. Depurar 57
1.12.1. Depurar con Eclipse . 57
1.12.2. Depurar con mensajes Log. 58
CAPÍTULO 2. Diseño de la interfaz de usuario: Vistas y Layouts 61
2.1. Creación de una interfaz de usuario por código . 62
2.2. Creación de una interfaz de usuario usando XML 63
2.2.1. Edición visual de las vistas 66
2.3. Layouts . 70
2.4. Una aplicación de ejemplo: Asteroides . 76
2.4.1. Recursos alternativos 78
2.5. Estilos y temas . 82
2.5.1. Los estilos . 83
2.5.1.1. Heredar de un estilo propio . 83
2.5.2. Los temas . 84
2.6. Uso práctico de Vistas y Layouts 85
2.6.1. Acceder y modificar las propiedades de las vistas por código 87
2.7. Uso de TabLayout 89
2.7.1. Uso de la etiqueta en Layouts 91
CAPÍTULO 3. Actividades e Intenciones 93
3.1. Creación de nuevas actividades . 94
3.2. Comunicación entre actividades . 98
3.3. Añadiendo un menú 100
3.4. Creación y uso de iconos 102
3.5. Añadiendo preferencias de usuario 105
3.5.1. Organizando preferencias . 108
3.5.2. Como se almacenan las preferencias de usuario . 109
3.5.3. Accediendo a los valores de las preferencias . 110
3.6. Añadiendo una lista de puntaciones en Asteroides 111
3.7. La vista ListView . 113
3.7.1. Un ListView que visualiza una lista de Strings 115
3.7.2. Un ListView que visualiza Layouts personalizados . 116
3.7.3. Un ListView con nuestro propio adaptador . 118
3.7.4. Detectar una pulsación sobre un elemento de la lista . 120
3.8. Las Intenciones 121
3.8.1. La etiqueta . 126
CAPÍTULO 4. Gráficos en Android 127
4.1. Clases para gráficos en Android . 128
4.1.1. Canvas 128
4.1.2. Paint 130
4.1.2.1. Definición de colores . 131
4.1.3. Path 133
4.1.4. Drawable . 135x
4.1.4.1. BitmapDrawable 136
4.1.4.2. GradienDrawable 137
4.1.4.3. TransitionDrawable . 138
4.1.4.4. ShapeDrawable 138
4.1.4.5. AnimationDrawable . 139
4.2. Creación de una vista en un fichero independiente 140
4.3. Creando la actividad principal de Asteroides 143
4.3.1. La clase Gráfico . 145
4.3.2. La clase VistaJuego 146
4.3.3. Introduciendo la nave en VistaJuego 148
4.4. Representación de gráficos vectoriales en Asteroides . 150
4.5. Animaciones . 152
4.5.1. Animaciones Tween 153
4.5.2. Animaciones de propiedades 156
CAPÍTULO 5. Entradas en Android: teclado, pantalla táctil y sensores 157
5.1. Manejando eventos de usuario . 158
5.1.1. Escuchador de eventos . 158
5.1.2. Manejadores de eventos . 159
5.2. El teclado 159
5.3. La pantalla táctil . 162
5.3.1. Manejo de la pantalla táctil con multi-touch 165
5.3.2. Manejo de la nave con la pantalla táctil 168
5.4. Gestures . 169
5.4.1. Creación y uso de una librería de gestures . 170
5.4.2. Añadiendo gestures a Asteroides 174
5.5. Los sensores 176
5.5.1. Un programa que muestra los sensores disponibles
y sus valores en tiempo real 181
5.5.2. Utilización de los sensores en Asteroides . 183
5.6. Uso de hilos de ejecución (Threads) . 184
5.6.1. Introduciendo movimiento en Asteroides 185
5.7. Introduciendo un misil en Asteroides 187
CAPÍTULO 6. Multimedia y ciclo de vida de una actividad 191
6.1. Ciclo de vida de una actividad 192
6.1.1. ¿Qué proceso se elimina? . 198
6.1.2. Guardando el estado de una actividad 200
6.2. Utilizando multimedia en Android 202
6.3. La vista VideoView 205
6.4. La clase MediaPlayer 207
6.4.1. Reproducción de audio con MediaPlayer 207
6.5. Un reproductor multimedia pasó a paso . 208
6.6. Introduciendo efectos de audio con SoundPool . 215
6.7. Grabación de audio . 217
CAPÍTULO 7. Seguridad y posicionamiento 223
7.1. Los tres pilares de la seguridad en Android 224
7.1.1. Usuario Linux y acceso a ficheros . 225
7.1.2. El esquema de permisos en Android . 225
7.1.3. Permisos definidos por el usuario en Android . 227
7.2. Localización 231
7.2.1. Emulación del GPS con Eclipse 236
7.3. Google Maps 237
7.3.1. Obtención de una clave Google Maps 237
7.4. Fragmentando los asteroides 242
CAPÍTULO 8. Servicios, notificaciones y receptores de anuncios 245
8.1. Introducción a los servicios en Android . 246
8.1.1. Ciclo de vida de un servicio. 247
8.1.2. Permisos . 249
8.2. Un servicio para ejecución en segundo plano. . 249
8.2.1. Los métodos onStartCommad() y onStart() 252
8.3. Las notificaciones de la barra de estado . 254
8.3.1. Configurando tipos de avisos en las notificaciones . 257
8.3.1.1. Asociar un sonido 257
8.3.1.2. Añadiendo vibración . 257xii
8.3.1.3. Añadiendo parpadeo de LED 257
8.4. Receptores de anuncios 258
8.4.1. Receptor de anuncios registrado en AndroidManifest.xml 259
8.4.2. Arrancar un servicio tras cargar el sistema operativo . 265
8.5. Un servicio como mecanismo de comunicación entre aplicaciones . 266
8.5.1. Crear la interfaz en AIDL . 267
8.5.2. Implementar la interfaz 268
8.5.3. Publicar la interfaz en un servicio 269
8.5.4. Llamar a una interfaz remoto . 270
CAPÍTULO 9. Almacenamiento de datos 273
9.1. Alternativas para guardar datos permanentemente en Android . 274
9.2. Añadiendo puntuaciones en Asteroides 275
9.3. Preferencias . 277
9.4. Accediendo a ficheros . 280
9.4.1. Sistema interno de ficheros . 281
9.4.2. Sistema de almacenamiento externo 283
9.4.2.1. Verificando acceso a la memoria externa 285
9.4.2.2. Almacenando ficheros específicos de tu aplicación
en el almacenamiento externo 286
9.4.2.3. Almacenando ficheros compartidos en el almacenamiento externo 287
9.4.3. Acceder a un fichero de los recursos 288
9.5. Trabajando con XML . 289
9.5.1. Procesando XML con SAX 290
9.5.2. Procesando XML con DOM . 296
9.6. Bases de datos . 301
9.6.1. Los métodos query() y rawQuery() 304
9.7. Utilizando la clase ContentProvider 305
9.7.1. Conceptos básicos 306
9.7.1.1. El modelo de datos . 306
9.7.1.2. Las URI . 306
9.7.2. Acceder a la información de un ContentProvider 307
9.7.2.1. Leer información de un ContentProvider . 308
9.7.2.2. Escribir información en un ContentProvider . 311
9.7.2.3. Borrar y modificar elementos de un ContentProvider . 312
9.7.3. Creación de un ContentProvider . 312
9.7.3.1. Definir la estructura de almacenamiento del ContentProvider . 313
9.7.3.2. Extendiendo la clase ContentProvider . 314
9.7.3.3. Declarar el ContentProvider en AndroidManifest.xml 318
9.7.4. Acceso a PuntuacionesProvider desde Asteroides . 319
CAPÍTULO 10. Internet: sockets, HTTP y servicios web 321
10.1. Comunicaciones en Internet mediante sockets 322
10.1.1. La arquitectura cliente/servidor 322
10.1.2. ¿Qué es un socket? 322
10.1.2.1. Sockets stream (TCP) . 323
10.1.2.2. Sockets datagram (UDP) . 323
10.1.3. Un ejemplo de un cliente / servidor de ECHO 324
10.1.4. Un servidor por sockets para las puntuaciones 326
10.2. La web y el protocolo HTTP 330
10.2.1. El protocolo HTTP 330
10.2.2. Versión 1.0 del protocolo HTTP . 332
10.2.3. Utilizando HTTP desde Android . 334
10.3. Servicios web . 339
10.3.1. Alternativas en los servicios web 339
10.3.1.1. Servicios web basados en SOAP 340
10.3.1.2. Servicios web basados en REST 341
10.3.2. Acceso a servicios web de terceros 345
10.3.3. Diseño e implantación de nuestro servicio web 349
10.3.3.1. Instalación del servidor de servicios web 349
10.3.3.2. Creación un servicio web en Eclipse 351
10.3.3.3. Explorando el servicio web desde Eclipse 354
10.3.3.4. Explorando el servicio web desde HTML 358
10.3.3.5. Utilizando el servicio web desde Asteroides 360
CAPÍTULO 11. Publicar Aplicaciones 365
11.1. Preparar y testear tu aplicación 366
11.1.1. Preparar la aplicación para distintos tipos de dispositivo 366
11.1.2. Testear la aplicación 368
11.2. Crear un certificado digital y firmar la aplicación 370
11.3. Publicar la aplicación 372
11.3.1. Publicar en Internet 372
11.3.2. Publicar en Google Play Store 373
11.4. Asteroides: detectar victoria y derrota 377
ANEXO A. Referencia Java 379
ANEXO B. Referencia: la clase View y sus descendientes 391
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Fuente y contraseña: No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Saludos,, Cronos.-
#27
Dudas y pedidos generales / Re:[Java android] Añadir multiples layouts al mainActivity.xml
Enero 31, 2015, 12:21:47 PM
Y mira con Android Studio el diseño de aplicaciones es muy sencillo ya que es seleccionar y arrastrar, despues tocas un par de parametros y puedes hacer interfaces muy buenas.
Si realmente quieres aprender mas de android te recomiendo que primero instales Android Studio y luego veas los tutoriales en internet, en unas semanas ya dominas el ambiente.
Si tienes problemas al instalar el ambiente abre otro post con tus problemas y con gusto te ayudare.
Saludos,, Cronos.-
Si realmente quieres aprender mas de android te recomiendo que primero instales Android Studio y luego veas los tutoriales en internet, en unas semanas ya dominas el ambiente.
Si tienes problemas al instalar el ambiente abre otro post con tus problemas y con gusto te ayudare.
Saludos,, Cronos.-
#28
Dudas y pedidos generales / Re:[Java android] Añadir multiples layouts al mainActivity.xml
Enero 31, 2015, 11:28:11 AM
Bien ya entendi, lo que tu quieres es una pantalla con una EditText y debajo un boton.
Lo unico que tienes que hacer es cambiar la etiqueta TextView por EditText. Te quedaria asi.
Cualquier duda solo comenta!
Saludos,, Cronos.-
Lo unico que tienes que hacer es cambiar la etiqueta TextView por EditText. Te quedaria asi.
Cualquier duda solo comenta!
Saludos,, Cronos.-
#29
Galería / Re:Regalo - Wallpaper Underc0de.
Enero 31, 2015, 11:21:53 AM
Lejos el mejor wallpaper de underc0de que eh visto.. Felicitaciones!
Saludos,, Cronos.-
Saludos,, Cronos.-
#30
Dudas y pedidos generales / Re:Compress and resize image in Android
Enero 30, 2015, 02:09:42 PM
Ya lo solucione. Cuando me desocupe subo un tutorial de como hacerlo.
Saludos!
Saludos!
#31
Dudas y pedidos generales / Re:[java android]añadir multiples layouts al mainActivity.xml
Enero 30, 2015, 02:08:21 PM
Primero que nada usa Android Studio.
Segundo, veo que estas muy perdido en el tema de android, asique te recomiendo que veas tutoriales para iniciados. Ya que estas confundiendo muchos temas.
setLstAdapter se lo tienes que asignar a un elemento de dicho tipo. Y ahí no hay asignación.
Si me comentas que tratas de hacer, te tiro un codigo que funcione.
Saludos,, Cronos.-
Segundo, veo que estas muy perdido en el tema de android, asique te recomiendo que veas tutoriales para iniciados. Ya que estas confundiendo muchos temas.
setLstAdapter se lo tienes que asignar a un elemento de dicho tipo. Y ahí no hay asignación.
Si me comentas que tratas de hacer, te tiro un codigo que funcione.
Saludos,, Cronos.-
#32
Dudas y pedidos generales / Re:duda sobre java
Enero 30, 2015, 02:04:03 PM
Es facil arriba estas declarando una variable de tipo 'int' y mas abajo con el (int) casteas ya que estas haciendo una divicion y estaria dando un float. Entonces para evitar una exception se castea asi se guarda del tipo correspondido.
#33
Dudas y pedidos generales / [SOLUCIONADO] Compress and resize image in Android
Enero 27, 2015, 11:21:21 AM
Buenos días, les vengo con una duda que me gustaría resolver.
Eh desarrollado una lista exactamente igual como la de Whatsapp, y mi problema es que las imágenes que muestra cada chat pesa igual que la imagen original y esto hace que cuando hay 4 chat en la lista que quieren mostrar la imagen, la app colapsa del peso de las imagenes. Tengo que reducir el tamaño de la imagen y la calidad así las imágenes son livianas y no afecten al funcionamiento de la app. Alguno sabe el como implementar esto?
Todo comentario es valido y agradecido.
PD: Estoy programando en android nativo.
Saludos,, Cronos.-
Eh desarrollado una lista exactamente igual como la de Whatsapp, y mi problema es que las imágenes que muestra cada chat pesa igual que la imagen original y esto hace que cuando hay 4 chat en la lista que quieren mostrar la imagen, la app colapsa del peso de las imagenes. Tengo que reducir el tamaño de la imagen y la calidad así las imágenes son livianas y no afecten al funcionamiento de la app. Alguno sabe el como implementar esto?
Todo comentario es valido y agradecido.
PD: Estoy programando en android nativo.
Saludos,, Cronos.-
#34
Base de Datos / Re:Bases de datos - Proceso de Normalización
Noviembre 10, 2014, 08:49:03 AM
Genial! Buenísimo materia, justo en una semana rindo la materia base de datos y uno de los temas es normalizacon. Me viene al pelo!
Saludos,, Cronos.-
Saludos,, Cronos.-
#35
Dudas y pedidos generales / Re:Metodo de Encryptacion y Decryptacion
Noviembre 06, 2014, 09:14:15 AM
Muchas gracias por tu opinión y creo que si tienes razón al decir que si es bidireccional esta no puede disminuir el tamaña de la cadena.
Saludos,, Cronos.-
Saludos,, Cronos.-
#36
Dudas y pedidos generales / Re:Metodo de Encryptacion y Decryptacion
Octubre 30, 2014, 01:14:38 AM
Muchas gracias por sus respuestas!
#37
Dudas y pedidos generales / Re:Metodo de Encryptacion y Decryptacion
Octubre 29, 2014, 03:17:24 PM
Claro esa es la otra opción. Pero me evito crearlo si ya existe algún método parecido.
De todos modos, si no me convence ninguno tendré que codificar uno yo
Saludos y Gracias,, Cronos.-
De todos modos, si no me convence ninguno tendré que codificar uno yo
Saludos y Gracias,, Cronos.-
#38
Dudas y pedidos generales / Método de cifrado y descifrado
Octubre 29, 2014, 10:02:29 AM
Hola, les vengo a pedir su opinión con la siguiente duda.
Ando buscando un método que me ayude a encryptar y desencryptar una cantidad de información extensa.
La idea es disminuir caracteres, es decir de una cadena con 100 caracteres, genere una cadena de 20, 30 caracteres (mientras menos mejor).
Pensé en MD5, pero es unidireccional y tengo que generar un historial y toda la historia para luego obtener lo que dice. Pero no es la idea. Sino que sea un método que encrypte, desencrypte y disminuya la cantidad de caracteres sin necesidad de tener que almacenarlo en una db.
Si alguien conoce un método que cumpla mas o menos con estas características por favor coméntelo.
Saludos y Gracias,, Cronos.-
Ando buscando un método que me ayude a encryptar y desencryptar una cantidad de información extensa.
La idea es disminuir caracteres, es decir de una cadena con 100 caracteres, genere una cadena de 20, 30 caracteres (mientras menos mejor).
Pensé en MD5, pero es unidireccional y tengo que generar un historial y toda la historia para luego obtener lo que dice. Pero no es la idea. Sino que sea un método que encrypte, desencrypte y disminuya la cantidad de caracteres sin necesidad de tener que almacenarlo en una db.
Si alguien conoce un método que cumpla mas o menos con estas características por favor coméntelo.
Saludos y Gracias,, Cronos.-
#39
Dudas y pedidos generales / Re:Problema con estilos
Octubre 12, 2014, 05:37:20 PM
Gracias por responder, pero la solucion que me pasaste Alexander no me funciono, no noto ningun cambio :/
Esta esto es lo que tengo en el css:
Saludos,, Cronos.-
Esta esto es lo que tengo en el css:
Saludos,, Cronos.-
#40
Dudas y pedidos generales / Problema con estilos
Octubre 10, 2014, 02:44:17 PM
Buenos dias hoy les traigo una duda que espero solucionar.
Estoy trabajando con listas y lo que quiero hacer es que en cada item aparezca un nombre y al lado una tableta de colores que se despliega cuando toco en el input.
Mi problema es el siguiente, en el item sale el nombre y debajo el input, nose como eliminar este salto de linea. Si alguien puede ayudarme. La idea es que el input quede al lado.
Codigo:
Como me queda:
Desde ya muchas gracias!
Saludos,, Cronos.-
Estoy trabajando con listas y lo que quiero hacer es que en cada item aparezca un nombre y al lado una tableta de colores que se despliega cuando toco en el input.
Mi problema es el siguiente, en el item sale el nombre y debajo el input, nose como eliminar este salto de linea. Si alguien puede ayudarme. La idea es que el input quede al lado.
Codigo:
Como me queda:
Desde ya muchas gracias!
Saludos,, Cronos.-