lunes, 5 de marzo de 2012

Para los que empiezan o proyectos de programadores

"Don't over-do it. If you are a caffeine hog like most geeks, sure, go ahead and drink coffee all you want - I get my fix from Mountain Dew, which has kept me going on many all-nighters. Having said that, you aren't helping yourself if you fall asleep reading this book night after night, and neither is it a good thing to program when you are half awake - there is nothing worse than waking up at a desk the next morning and not having the faintest clue how the code you wrote last night works."

Aprendido en:
http://www.tuxradar.com/practicalphp/1/8/0

Android: Personalización de controles (Parte II)


Vista la entrada anterior (Parte I), vamos a poner en funcionamiento esos nuevos y flamantes diseños para controles.

1.- Empezamos por crear un nuevo proyecto en Android(para los que empiezan menu-new project-Other-Android project, minimun sdk 2.2 "8"), generamos la carpeta "\res\drawable", y le copiamos los archivos png.9 que creamos en la anterior entrada.

2.- En "\res\layout" creamos un "ponga_aqui_el_nombre_de_su_boton_personalizado.xml" (principiantes, en el explorador, seleccionen la carpeta layout, botón derecho del ratón, new-Other-Android->Android layout xml file), cambiamos el contenido del xml por lo siguiente:






3.-Lógicamente en vuestro proyecto deberéis sustituir los "drawable/mini30btngreen" por "drawable/nombre_de_vuestro_png".
4.- Vamos a Main.xml, si el archivo layout inicial por defecto  del proyecto(o en el que vayais a cambiar el estilo del botón), y le añadis un control de botón,
a las propiedades le añadis "android:background" y le asignais el valor "layout/ponga_aqui_el_nombre_de_su_boton_personalizado",volvemos a ver la vista previa del layout y deberá mostrar el boton con el nuevo diseño.
Tip: si al volver a la vista previa no os cambia el aspecto del botón u os da error comprobar que en el xml donde hemos puesto las imagenes del boton, lo habeis puesto sobre la propiedad android:drawable y no sobre android:background, es un error de principiante, pero todos lo hemos sido alguna vez.

5.- Ejecutar y comprobar la funcionalidad del botón.



Conclusión:
Básicamente en la entrada anterior (Parte I) y al principio de esta entrada, hemos visto y comprobado que se puede personalizar el diseño de controles (comprobado con botones y con spinners, si bien estos son más complejos al tener hijos), asignándoles recursos personalizados, cierto es que no son más que asignaciones de imágenes(y estilos, fuente, color, etc..) a los  estados visuales del control, existen multitud de ejemplos en ingles, pero como comente en la parte I se me ha hecho difícil encontrar recursos en la lengua de Cervantes. Como siempre estais invitados a comentar y corregir.

miércoles, 29 de febrero de 2012

Android Tutorial: Personalización de controles "Android: Draw 9-patch" (Parte 1)

Este tutorial esta formado por dos partes, la primera donde tocaremos el asunto de las imágenes y la segunda parte que sera la modificación propia de controles.

Realmente esto es útil para aquellos que no sean diseñadores, o que esten empezando con el asunto del diseño.

A quien no le ha pasado alguna vez que crea un icono para un botón con un determinado tamaño por ejemplo 60*120px, y se da cuenta de que ocupa demasiado(o que no siempre va a tener el mismo tamaño), así que en su inexperiencia, tiene la idea de reducir dimensiones y hacer un rescalado a 30*30px, y luego ya se le especifica tamaños en el xml, pero claro en ejecución te das de bruces con esa variación forzosa(metida a código con un fill_parent por ejemplo) falla estrepitosamente.
Dado el escenario de trabajo que nos plantea Android, principalmente trabajamos con dispositivos móviles donde prima la optimización de recursos, no es muy adecuado tener megas y megas de imagenes, asi que cuando quieres personalizar controles(botones, spinners, etc..), debes utilizar la herramienta "C:\Program Files (x86)\Android\android-sdk\tools\draw9patch.bat",la cual te permite optimizar cualquier imagen que deses utilizar en tus controles para que no se rescale de forma inadecuada al estar en ejecución.
1.- Tener un par de imagenes básicas:

2.- Ejecutar Draw9patch:
"C:\Program Files (x86)\Android\android-sdk\tools\draw9patch.bat"

3.- Arrastrar el archivo de imagen a modificar a la ventana de Draw9patch:

4.- Seleccionar los pixels que podrán modificarse, mirando la imagen se ve unos pixels negros en los bordes de la imagen base, y una tonalidad morada/rosa en el centro donde coinciden las cuadriculas superiores e inferiores, estas zonas verdes y rosa son marco y contenido, es decir el marco puede alargarse, y la rosa expandirse en todas direcciones, pero el marco siempre mantendrá su grosor original aunque se extienda 1000 pixels. Si os fijáis veréis que en mi imagen de ejemplo la linea negra inferior no coincide en longitud exactamente con la superior, con borrar el pixel(botón derecho del ratón, o pulsar shift) seria suficiente para evitar algún problema.

5.- Guardar la nueva imagen con "nombre_.9.png", esta imagen es la que debe usarse en el proyecto.
Para aplicarlo en un desarrollo en android ver parte (II)
Fuentes(en ingles):
Oficial

jueves, 8 de abril de 2010

Popups con javascript

Introducir el siguiente script en el apartado Head del formulario:



En la linea open(strOpen, "nombre", propiedad1, propiedad2, etc....) las propiedades(no todas funcionan en todos los navegadores) son las siguientes: Dependent, fullscreen, height, left, location, menubar, resizable, screenX/Y, scrollbars, status, toolbar, top, width.-

Codigo de javascript, en la url usar el siguiente codigo javascript:openPopup('index.aspx?Id=A')

En el archivo "CS" podemos utilizar el codigo de la siguiente forma:
LinkButton1.OnClientClick = "javascript:openPopup('Archivo.aspx?Id=" + DropDownList1.SelectedValue.ToString() + "')";

modificando el ID pasado por referencia, en funcion de un valor contenido en un control dropdownlist.