Spanish [B4A] Interface de Usuario personalizado.

droman

Member
Licensed User
Longtime User
Muy buenas.

Vamos con las preguntas al foro, y en caso de obtener respuesta por otros lares, la publicaré también en este hilo.


Pretendo hacer una aplicación, pero que visualmente tenga un puntito distinto al resto, nada importante, pero que los ListView sean más bonitos y depurados como los de "LBE Privacy Guard" por ejemplo (que conste, por Dios, que no tengo nada que ver con ellos, es simplemente por poner un ejemplo de interface que me gusta).

¿Sabeis como personalizar la apariencia de estos elementos en pantalla?

Se como modificar colores y como cambiar las lineas (creo, no o he probado) pero no se como hacer por ejemplo unos botones tan chulos de ON/OFF.

Si me podeis indicar algún paso para ir 'encaminandome' os lo agradecería.

Muchas gracias.
 

iliberis

Member
Licensed User
Longtime User
Pues, si el lenguaje lo permite, que creo que este no, se utilizan hojas de estilo, como en la web. Si no, el viejo truco de usar imágenes en lugar de botones normales.

De todas formas, el boton en B4A tiene la ventaja de poder usar una imagen para sus tres estados: Normal/Pulsado/Desactivado.

Yo creo que con cambiar la imagen cada vez que se pulsa el boton sería suficiente. Yo haría lo siguiente:

1- En la propiedad Tag del botón, un numero que indique el estado. 0 para off, 1 para on, etc...
2- En el evento Click, se cambia la imagen del boton según el estado de la propiedad Tag

Eso como muy rápido. El resto ya es cuestión de buen gusto y un poco de "buena mano" con el photoshop.
 

droman

Member
Licensed User
Longtime User
Bueno, pues efectivamente, es tan 'simple' como diseñar los elementos de pantalla con photoshop. Eso es facil y era muy sencillo, por ejemplo es muy facil hacer un boton con las tres imagenes, o un interruptor estilo mac, o lo que queramos, ahora... y un ListView y elementos similares... eso ya se complica más pero nada es imposible.

Intentaré currarme algo y lo mismo si no se me cae la cara de vergüenza, os lo pongo aquí... puede ser garantía de unas risas seguro XD
 

droman

Member
Licensed User
Longtime User
He enontrado esto en la pagina de google.


Styles and Themes | Android Developers


La única pega es que imagino que B4A no estará preparado para dar soporte a estas hojas de estilo.

Si alguien controla de inglés fetén, que lo pregunte si quiere, que con mi nivel, cada vez que pregunto algo, yo creo que tardan en responder por que se están partiendo la caja... me da a mí...

Sigo al tajo...
 

iliberis

Member
Licensed User
Longtime User
Droman, que no se te caiga la cara de verguenza, que mas de uno andamos con la misma pregunta. Se que lo de los listview se puede hacer en Java sin problema... ahora, en B4A cualquiera sabe como.

Por mi parte, añado otra cosilla... los tabs. Estaria muy bien que se pudieran hacer al estilo iPhone. O de otras muchas maneras. En Java, como bien dices, mediante hojas de estilo no hay problema para personalizar cualquier cosa. Pero, en B4A, que yo sepa, no se puede aun hacer nada asi.
 

CROFG

Member
Licensed User
Longtime User
Ubicación de archivos y español

Hola (que agradable escribir en lenguaje nativo!!)
He estado practicando y tengo algunas dudas:
1.- Conectado con wifi bridge ¿donde quedan las aplicaciones?
2.- Similar a lo anterior si manejo la aplicación con lectura de un archivo csv ¿dónde queda este?. Lo subo junto con la aplicación desde el PC y está todo bien, solo que no lo puedo hallar dentro de las carpetas del teléfono y tarjeta (es un Galaxy S2).
3.- El archivo csv tiene problemas de visualización en scrollview de B4A para los acentos y ñ. ¿Existe un setup para lenguaje UTFS a algo así?
Gracias y saludos a esta comunidad.
 

iliberis

Member
Licensed User
Longtime User
Hola (que agradable escribir en lenguaje nativo!!)
Y tu que lo digas!!! Un autético gustazo.


No he entendido bien las dudas. De todas formas, abre un hilo nuevo en el propio foro, para que todo el mundo lo vea. Si pones las preguntas en un tema relacionado con el aspecto del programa, lo mismo alguno no la ve.

De la segunda duda, depende de donde estés colocando el archivo CSV. Si lo tienes en "Files", se copia DENTRO del apk, asi que poco vas a poder luego buscarlo. Hay varias zonas de almacenamiento con respecto a las apps. Echa un rápido vistazo a http://www.b4x.com/forum/basic4android-getting-started-tutorials/6690-text-files.html que ahi está todo bien descrito. A ver si me pongo luego y lo traduzco para que lo podamos ver todos también en nuestro idioma.
 

CROFG

Member
Licensed User
Longtime User
Gracias iliberis, sigo tratando de cambiar el switch de archivos exe y datafiles en directorios de PC. Adjunto traducción del link (Google y un poco de mi parte).
Gracias por tu ayuda.

Muchas aplicaciones requieren el acceso a un almacenamiento permanente. Los dos tipos de almacenamiento más comunes son los archivos y bases de datos. Vamos a cubrir los archivos de texto en este tutorial.

El objeto Files dispone de varios métodos de utilidad para trabajar con archivos de texto que son bastante fáciles de usar.

Ubicación de archivos - Hay varios lugares importantes donde se puede leer o escribir archivos.

File.DirAssets: Esta carpeta incluye los activos de los archivos que se agregaron con el administrador de archivos. Estos archivos son de sólo lectura. Usted no puede crear nuevos archivos en esta carpeta (que se encuentra realmente en el archivo APK).

File.DirInternal / File.DirInternalCache: Estas dos carpetas se almacenan en la memoria principal y son de uso privado para cada aplicación. Otras aplicaciones no pueden acceder a estos archivos.
La carpeta de caché puede obtener borrado por el sistema operativo si necesita más espacio.

File.DirRootExternal : Almacenamiento en la raíz de tarjeta SD

File.DirDefaultExternal : La carpeta por defecto para aplicaciones en la tarjeta SD. La carpeta es: <Tarjeta>/Android/data/<paquete>/archivos/
Se creará, si es necesario.

Tenga en cuenta que llamando a cualquiera de las dos propiedades anteriores se sumará el permiso EXTERNAL_STORAGE a su aplicación.

Sugerencia: Puede comprobar si hay una tarjeta de almacenamiento y si está disponible con File.ExternalReadable y File.ExternalWritable.

El objeto Files predefinido (que no es necesario declarar) incluye varios métodos para leer y escribir a los archivos.

También puede utilizar TextReader y TextWriter para hacerlo manualmente.
Tenga en cuenta que TextReader y TextWriter no se limita a objetos FILE y puede trabajar con otros archivos.

TextReader y TextWriter tienen una ventaja sobre el método de lectura / escritura de FILE al trabajar con archivos de gran tamaño. Los métodos FILE de lectura leen completamente el archivo y lo guardan en memoria. En muchos casos esta es la solución más conveniente, sin embargo si usted trabaja con archivos de gran tamaño (más de 1-2mb) es posible que prefiera trabajar con TextReader o TextWriter.

File.WriteString - Escribe el texto dado a un nuevo archivo.
File.ReadString - Lee un archivo y devuelve el contenido como una cadena.
File.WriteList - Escribe todos los valores almacenados en una lista en un archivo. Todos los valores se convierten a tipo de cadena si es necesario. Cada valor se almacena en su propia línea.
Tenga en cuenta que si el valor contiene el carácter de nueva línea que se guardan más de una línea y cuando usted lo lee, se lee en varios elementos.
File.ReadList - Lee un archivo y lo almacena cada línea como un elemento de una lista.
File.WriteMap - Toma un objeto de mapa que contiene pares de clave y elementos de valor y lo almacena en un archivo de texto. . El formato de archivo que se conoce como archivo de propiedades Java: propiedades - Wikipedia, la enciclopedia libre
El formato de archivo no es demasiado importante a menos que el archivo se supone que se modifican manualmente. Este formato hace que sea fácil de editar manualmente.
Un uso común de File.WriteMap es para guardar un mapa de "ajustes" en un archivo.
File.ReadMap - Lee un archivo de propiedades y devuelve su clave / valor como un objeto de mapa. Tenga en cuenta que el orden de las entradas obtenidas pueden ser diferentes del orden original.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…