Ver la Versión Completa : [ CONSULTA ] Cómo adaptar el tamaño del texto en una apk en función de la resolución de cada móvil
carcacia
08/02/14, 11:47:33
Hola compañeros. Bien, la duda es la siguiente:
Cuando hice la aplicación del Zombicide, la exporté como app y la instalamos en el movil de mi novia, y me di cuenta de que algo pasaba con los textos. Resulta que yo la hice en mi Bq Aquaris 5, cuya resolución es de 540x960 y el suyo es un HTC Desire de 480x854.
Las escenas las hice con una resolución a tope de mi dispositivo, es decir 540x960. Y en su móvil lo que sucede es que la ajusta escalandola, y como la proporción no es la misma, digamos que de alto queda bien, pero de ancho aparecen dos bordes grises a los lados para que el ancho quede bien, esto no es lo que más me preocupa, si no los textos. Resulta que en su móvil los textos son más grandes, con lo que supongo que lo que sucede es que el tamaño de texto sigue siendo el mismo y como la resolución es más baja, en comparación a las imágenes, el texto no se reduce.
Uy, espero que se haya entendido. He estado buscando y trasteando, y en las opciones del elemento texto, he visto la opción de Modo Ajuste Vertical, que por defecto viene en ninguno, y lo he marcado como Reducir Tamaño Texto. Pero no me parece que sea la solución, y si lo es, algo hago mal, porque lo que hace es desconfigurarme el tamaño en mi móvil.
Se me ha ocurrido que el tamaño de texto la coja de una variable, y que esta vaya en función de la resolución del dispositivo, pero esto último, saber la resolución del dispositivo, no tengo ni idea de como hacerlo. Espero que la solución exista y sea más sencilla.
Gracias, un saludo.
La solución aquí: http://www.htcmania.com/showpost.php?p=12450787&postcount=12
Pues a mi también me interesa. La verdad es que no he investigado el tema pero pensé que quizás ahora con la nueva versión y todo el rediseño q tuvo el tema de las escenas se haría esto de forma automática.
Voy a publicar un post en el foro oficial a ver que dicen.
La resolución de la pantalla digo yo que habrá una manera de saber la a ver si la encuentro.
Ya esta carcacia. La resolución y dpi la puedes saber con la acción Prueba categoría miscelaneo.
Yo esto no lo tengo muy controlado por eso te pregunto: cuando hagamos una apk la resolución de la escena la tendríamos que poner con variables y estas a su vez establecer su valor con lo que nos de esa acción? Como lo ves?
carcacia
08/02/14, 12:10:54
Gracias por responder y por intentar buscar soluciones, yo seguiré trasteando a ver si encuentro algo
carcacia
08/02/14, 12:18:28
Ya esta carcacia. La resolución y dpi la puedes saber con la acción Prueba categoría miscelaneo.
Yo esto no lo tengo muy controlado por eso te pregunto: cuando hagamos una apk la resolución de la escena la tendríamos que poner con variables y estas a su vez establecer su valor con lo que nos de esa acción? Como lo ves?
Uhm, creo que entiendo lo que planteas, pero cuando determinas el tamaño de la escena no puedes escribir otra cosa que no sean números, con lo que tiene que tener un tamaño preestablecido si o si.
A lo que yo me refería es a que el tamaño de texto pueda variar en función de la resolución, por ejemplo, si la altura es de 960 el texto de 25 y si es de 854 el texto sería, por regla de tres de 22.
Seguiré probando a ver que consigo.
carcacia
08/02/14, 12:45:12
osea:
1.Prueba ... Tipo: Display Resolution ... Almacenar Resultado en: %resoluciones (ejemplo resultado: 540x960)
2.Separa variable ... Nombre: %resoluciones .... Separador: x
Si lo que quiero es un tamaño de texto por ejemplo de 25 en mi dispositivo, en otro sería:
%resoluciones2 * 25 / 960 (calcular). A ver si esta tarde lo pruebo en su móvil...
carcacia
08/02/14, 22:28:37
Bueno, he llegado a la solución gracias a las indicaciones de mlesir.
Como decía anteriormente, puesto que cuando la escena se ve en un dispositivo con resolución inferior, se adapta ajustándose verticalmente, lo suyo sería que el texto se escale en función de esta dimensión.
Para ello, no sé si es lo más correcto, pero si que ha funcionado, lo que he hecho es añadir en la tarea que lanza la apliación, lo siguiente:
465968
Como decía, en el punto 3, lo que hago es una simple regla de 3: si en mi dispositivo con altura 960 coloco un texto de tamaño 20, en la resolucion que sea que tenga el otro será "X". Osea:
%Tamañot20 = %resoluciones2 * 20 / 960
Y en la escena, en el texto, al pulsar en las flechas entrelazadas en el tamaño de texto para cambiar y poder poner una variable, colocamos %Tamañot20:
465969
El resultado, como vereis en las dos siguientes imágenes, es el esperado. Solo he hecho el cambio en el punto 2, donde pone: "2. Seleccione el número de barras del diámetro escogido (montaje)". Así podemos ver como varía con respecto a lo anterior.
Esta es la captura en mi móvil, logicamente la regla de tres da el mismo valor y el texto tiene el mismo tamaño que tenía, como los puntos 1 o 3.
465967
La siguiente, en el movil de mi novía que tiene una resolución más baja, se ve como el texto del punto 2 es más pequeño y se adapta, y en cambio todos los demás están más grandes y en ocasiones cortados.
Por cierto, esta es otra miniApp que me he hecho (esto es un vicio) esta más enfocada a mi campo, la Arquitectura, que básicamente consiste en una vez hallada la resistencia que necesitamos para las barras de hormigón en una determinada pieza (viga, pilar, etc) la cantidad de barras que necesitamos según su diametro y otros parámetros.
Un saludo, espero que sirva para si alguien tiene la misma duda o una parecida.
Carcacia muchas gracias, enhorabuena. Ya eres todo un developer! Jeje
Entonces me confirmas q el único problema es el tamaño del texto no? Lo demás se ve bien?
Otra cosa yo cambiaría el título del hilo a algo así como: Cómo adaptar el tamaño del texto en una apk en función de la resolución de cada móvil. Más o menos.
Caravantes
09/02/14, 00:45:12
Si lo que quiero es un tamaño de texto por ejemplo de 25 en mi dispositivo, en otro sería: %resoluciones2 * 25 / 960 (calcular).
Creo que esa estrategia funcionará bien en cualquier dispositivo que tenga menos resolución, pero es posible que falle en otros dispositivos con más resolución.
Si creas una escena en un aparato de 540x960 y luego la llevas a un aparato que tenga menos resolución es lógico que ahí se haga un escalado para poder mostrar toda la escena. Pero al llevarla a un aparato con más resolución veo muy posible que no se haga escalado alguno, que muestre la escena cubriendo solo una parte de la pantalla. Y en esas circunstancias sería un error aumentar el tamaño de la letra, puesto que la escena no ha aumentado. En ese caso sería más ventajoso dejar la letra con el tamaño correspondiente a la pantalla original (540x960).
Puedes hacer la prueba construyendo una escena en el HTC Desiré y llevándola luego al Bq Aquaris, para comprobar si hace el escalado o la deja tal cual.
carcacia
09/02/14, 01:10:39
Otra cosa yo cambiaría el título del hilo a algo así como: Cómo adaptar el tamaño del texto en una apk en función de la resolución de cada móvil. Más o menos.
Cambiado, gracias.
Puedes hacer la prueba construyendo una escena en el HTC Desiré y llevándola luego al Bq Aquaris, para comprobar si hace el escalado o la deja tal cual.
Aun no lo he probado, pero no sería lo mismo que si a la escena, en vez de ponerle la resolución tope de mi telefono como tamaño, le pongo una inferior? He probado con la mitad, es decir, 270x480, y lo que hace al lanzarla (como actividad a pantalla completa) es escalarla a tope. También he probado a reducirle el ancho, vamos, para cambiar la proporcion al igual que sucede al pasar al Desire; la he puesto a 250x480, y hace lo mismo, la adapta a tope en sentido vertical, y aparecen las franjas laterales. (Por cierto, esas franjas laterales, si el fondo de la app es un color, son ese color, como se ve en las capturas de antes).
Así que imagino que si paso del mi Aquaris a por ejemplo un S3 (720x1080), aumentaría la escala de todas las piezas, y el texto se aumentaría en consecuencia, manteniendo la misma configuración.
Es que lo que es el recuadro de texto, al igual que una imagen, se escala al cambiar a otra resolución, pero el tamaño de texto entiendo que lo sigue poniendo en el mismo numero de pixeles sea cual sea la resolución.
Es posible que sea así? Gracias por contestar, un saludo.
Caravantes
09/02/14, 02:26:26
Es posible que sea así?
Cierto. Si la lanzas a pantalla completa es muy probable que funcione como has dicho.
Gracias por compartir todos esos conocimientos.
carcacia
09/02/14, 11:38:07
He probado a modificar toda la escena con esta forma de variar el tamaño de texto según la resolución del dispositivo, y funciona. El resultado final es este:
En la tarea que lanza la escena añadimos esto:
1. Prueba ... Tipo: Display resolution ... Almacenar Resultado en: %resoluciones (está en la sección miscelánea, y nos da la resolución con este formato 540x960)
2. Separar Variable ... Nombre: %resoluciones ... Separador: x (así, la hija2 tendrá la dimensión vertical del dispositivo)
3. For ... Variable: %ttexto ... Ítems: 10:50 (a mi 10 ya me parece suficientemente pequeño, pero cada uno que elija el suyo)
.....4. Establecer Variable ... Nombre %Tamañot(%ttexto) ... A (%resoluciones2)*(%ttexto)/960 ... Calcular ... (en mi caso es 960 para la regla de tres porque utilizo un tamaño de escena de 540x960)
5. End For
6. Mostrar escena (la que sea) como actividad a pantalla completa sin titulo
Caravantes
10/02/14, 00:21:50
3. For ... Variable: %ttexto ... Ítems: 10:50
He tardado media hora en desguazar todos los detalles para entender ese bucle FOR, que en principio me resultaba incomprensible. Yo había entendido bien tu primera ecuación (la regla de tres) y no veía ninguna necesidad de complicarlo más.
Ahora deduzco que en la escena tienes diferentes casillas de texto, con tamaños de letra que varían entre 10 y 50, y ese bucle ajusta las distintas variables (una matriz) que definen el tamaño del texto para cada una de esas casillas.
Así, las casillas que en tu móvil (540x960) tendrían un tamaño 10, les has puesto un tamaño de texto definido por la variable %Tamañot(10).
Las casillas que en tu móvil (540x960) tendrían un tamaño 50, les has puesto un tamaño de texto definido por la variable %Tamañot(50).
Y lo mismo para todos los tamaños intermedios que puedas necesitar en la escena.
El bucle ajusta todos los elementos de esa matriz en proporción a la resolución vertical para que todos los textos se reajusten automáticamente y se vean bien.
El problema inicial con el que comenzaste el hilo... Al final lo has resuelto tú mismo y lo has hecho de una forma BRILLANTE y MAGNÍFICA, que es fácilmente extrapolable a cualquier otra escena y/o a cualquier otra resolución. :aplausos:
Y gracias por compartirlo :besito:
Solo te ha faltado explicarlo un poco más, pero ya lo he hecho yo, creo.
Se me ocurre una pequeña mejora: las acciones 1 a 5 podrían estar dentro de una condición Si(if) %Tamañot(10) no ajustado. De esa forma, esas acciones solo se ejecutarían la primera vez que se usa la escena; en las siguientes veces ya tenemos establecidas las variables y no hay necesidad de repetir esas acciones (especialmente el bucle FOR, que se ejecuta 41 veces). Así se agilizará la aparición de la escena.
carcacia
10/02/14, 11:24:18
El problema inicial con el que comenzaste el hilo... Al final lo has resuelto tú mismo y lo has hecho de una forma BRILLANTE y MAGNÍFICA, que es fácilmente extrapolable a cualquier otra escena y/o a cualquier otra resolución.
Gracias. En un principio pregunté si había algún tipo de "botón" que lo hiciera el propio tasker, pero si no la idea la tenía más o menos clara, lo que no sabía era como obtener la resolución, a lo que mlesir me ayudó.
La intención del For de 10 a 50, es que si colocas este fragmento de código al inicio, en la escena puedas meter los tamaños de texto más convencionales sin preocuparte de andar cambiando la regla de tres.
Lógicamente si solo usases un tamaño de texto no tendría mayor sentido, y si vas a usar 2 o 3 podría poner los valores concretos en el For. Pero como he dicho, la intención es q así puedas usar cualquiera.
Solo te ha faltado explicarlo un poco más, pero ya lo he hecho yo, creo.
Lo cierto es que sí. Cuando lo estaba escribiendo pensaba, luego tengo que poner como se pone el tamaño de texto en la propia escena y lo que sucede, pero se me fue la olla. Gracias por finalizarlo.
Se me ocurre una pequeña mejora: las acciones 1 a 5 podrían estar dentro de una condición Si(if) %Tamañot(10) no ajustado. De esa forma, esas acciones solo se ejecutarían la primera vez que se usa la escena; en las siguientes veces ya tenemos establecidas las variables y no hay necesidad de repetir esas acciones (especialmente el bucle FOR, que se ejecuta 41 veces). Así se agilizará la aparición de la escena.
Esto último no acabo de pillarlo, pero trastearé.
Un saludo
Caravantes
10/02/14, 18:24:47
Esto último no acabo de pillarlo, pero trastearé.
1. Si(if) %Tamañot(10) no ajustado (si no está establecido el valor de esa variable)
. . 2. Prueba ... Tipo: Display resolution ... Almacenar Resultado en: %resoluciones (está en la sección miscelánea, y nos da la resolución con este formato 540x960)
. . 3. Separar Variable ... Nombre: %resoluciones ... Separador: x (así, la hija2 tendrá la dimensión vertical del dispositivo)
. . 4. For ... Variable: %ttexto ... Ítems: 10:50 (a mi 10 ya me parece suficientemente pequeño, pero cada uno que elija el suyo)
. . . . 5. Establecer Variable ... Nombre %Tamañot(%ttexto) ... A (%resoluciones2)*(%ttexto)/960 ... Calcular ... (en mi caso es 960 para la regla de tres porque utilizo un tamaño de escena de 540x960)
. . 6. End For
7. End If
8. Mostrar escena (la que sea) como actividad a pantalla completa sin titulo
Las acciones 2 a 6 son las que establecen el valor de las variables %Tamañot(), que son variables Globales y por tanto su contenido permanece tras haber finalizado la tarea. Por consiguiente, en las ocasiones siguientes que se use la tarea no es necesario volver a ejecutar esas acciones porque esas variables siguen teniendo el valor correcto. La acción 1 sirve para controlar si las variables %Tamañot() ya tenían un valor establecido, en tal caso se puede saltar directamente a la acción 8 para ahorrar tiempo.
carcacia
10/02/14, 21:22:01
1. Si(if) %Tamañot(10) no ajustado (si no está establecido el valor de esa variable)
Muchas gracias por ponerlo así tan claro. Jo, siento no haber sido más rápido en corregirme, lo cierto es que esta tarde estuve trasteando y llegué a eso mismo cuando curiosee las opciones en el Si más allá del "menor que", jajaja, vamos, que hasta ahora desconocía lo de Ajustado o No Ajustado, por eso cuando leí tu comentario por la mañana no lo tenía claro del todo. Como aun no sé para que sirven la mayoría de las opciones de Tasker, digamos que esta me ha abierto muchas posibilidades para otra pequeña aplicación que estoy haciendo, que intentaré compartir cuando acabe.
Bueno pues ahora que ya me he puesto a probar mi app y ver como se ve en otros dispositivos me he dado cuenta de una cosa:
Lo que se supone que nos dice el tamaño de la pantalla es la resolución. Con lo cual tenemos un problema y os pongo un ejemplo para que lo veáis:
Mi Note 1 tiene de resolción según Tasker: 800x1280 El tamaño de la pantalla es 5.3 pulgadas.
Mi Tablet BQ edison: 800x1232 Tamaño de la pantalla: 10.1 pulgadas.
Es decir que con el sistema que hemos utilizado hasta ahora en este hilo resulta el texto debería ser más grande en el Note que en la Tablet!!
Pongo otro ejemplo: que pasaría si mi apk la desarrollo en mi Note1 (resolución 800x1280) y la utiliza un usuario del nuevo Oppo Find 7 (Pantalla 5,5″ QHD 2560 x 1440 pixels, 538ppi )??
NOTA: de acuerdo que el ejemplo es extremo y que es el dispositivo con más resolución hasta la fecha pero por eso lo he cogido
Pues si yo no estoy equivocado la regla de tres que utilizamos establecería un tamaño de texto tan grande que se cortaría o no se vería no??
Es decir lo que deberíamos saber es el tamaño de la pantalla no la resolución no?
He estado mirando a ver como y desde luego en Tasker no hay manera y con scripts (dumpsys window) tampoco porque al parecer depende de la Rom para que te de una información u otra. Se puede saber utilizando lo que creo que es Java o algo así pero excede con mucho mis posibilidades.
Por otro lado ( y aqui las buenas noticias) parece que no es necesario utilizar el método que Carcacia ha desarrollado:
Si en el elemento que ponemos en la escena le ponemos "Reducir Tamaño Texto" en el item "Modo de ajuste vertical" Tasker al instalar en otro dispositivo lo ajusta automaticamente. Lo he probado de la Tablet al Movil y funciona. Solo tiene una pega, lo reduce demasiado. Vamos que parece como si Tasker dijera mas vale pasarse de reducido que quedarse corto y que no se vaya a ver o que se corte el texto.
carcacia
21/04/14, 17:20:30
Mi Note 1 tiene de resolción según Tasker: 800x1280 El tamaño de la pantalla es 5.3 pulgadas.
Mi Tablet BQ edison: 800x1232 Tamaño de la pantalla: 10.1 pulgadas.
Es decir que con el sistema que hemos utilizado hasta ahora en este hilo resulta el texto debería ser más grande en el Note que en la Tablet!!
Pongo otro ejemplo: que pasaría si mi apk la desarrollo en mi Note1 (resolución 800x1280) y la utiliza un usuario del nuevo Oppo Find 7 (Pantalla 5,5″ QHD 2560 x 1440 pixels, 538ppi )??
Igual me equivoco, porque no controlo del todo el tema, pero esta es mi teoría, y la explico con un ejemplo:
Imaginate que el tamaño de texto que quieres usar es 30, es decir, 30 en tu Note (con altura 1280). Y por tanto, como bien dices, es más grande en el Note que en la tablet (28,8). Pero, ¿No se supone que la tablet tiene los puntos más grandes? o me equivoco.
Y en el Oppo (con una pantalla casi del mismo tamaño que el note) el tamaño sería de 56, pero dado que los puntos son tan pequeños, se verían del tamaño adecuado, aproximadamente el mismo en ambos dispositivos, pero con mucha mas calidad.
Esta es mi idea, pero igual me equivoco.
Si en el elemento que ponemos en la escena le ponemos "Reducir Tamaño Texto" en el item "Modo de ajuste vertical" Tasker al instalar en otro dispositivo lo ajusta automaticamente. Lo he probado de la Tablet al Movil y funciona. Solo tiene una pega, lo reduce demasiado. Vamos que parece como si Tasker dijera mas vale pasarse de reducido que quedarse corto y que no se vaya a ver o que se corte el texto.
__________________
Esto creo q lo había probado y ese era el motivo por el que no me convencia.
Pues lo que dices es muy lógico. Acabo de probar lo siguiente: creo una escena q solo tiene un texto "tres" a tamaño 93.
Segun tu teoría cuando se muestra en ambos dispositivos debería verse una diferencia considerable no?
Pues yo los veo igual de grandes en los dos. Lastima.
O sea que el tamaño del texto parece que no tiene nada que ver con los pixels.
Podemos concluir que esto no funciona o se te ocurre otra cosa? A mi se me antoja que esta prueba es suficiente no? Tu que crees?
Pues me he informado un poco y efectivamente en la tableta los pixels deberían ser más grandes. Por eso concluyó que el tamaño de los textos en tasker no tienen en cuenta los pixels o eso parece. De lo contrario un texto con el mismo tamaño se debería ver más grande en la tablet.
carcacia
21/04/14, 20:59:32
Pues no sé. Yo las que he hecho en mi Aquaris 5 (540x960) al pasarlas al Desire de mi novia (480x856) con mi solución a modificado el texto correctamente, vamos que lo escala bien, y todo se ve en su sitio.
Creo que ya que tasker escala las imágenes, lo suyo sería por ejemplo, colocar una imagen que fuese un cuadrado, y un texto, una sola letra, que se ajustase aproximadamente al cuadrado, y me refiero al texto en si, no al recuadro de texto. Y ver que sucede en otro dispositivo.
Caravantes
22/04/14, 00:12:26
Yo no tengo ninguna experiencia real con este tema concreto relacionado con Tasker y las escenas. Pero sí tengo experiencia con gráficos, utilizados en pantallas de distintos tamaños y resoluciones. Trataré de explicarlo con ejemplos concretos.
Mi cámara hace fotos de 4896 x 2752 pixels (13.47 megapixels en proporción 16:9). La imagen se ve a pantalla completa en distintos dispositivos y siempre mantiene las proporciones. No importa el tamaño de la pantalla, la imagen siempre se ve completa. Por ejemplo, tengo un smartphone de 4 pulgadas con resolución "estándar HD" (1920 x 1080); ahí la imagen sale bastante pequeña. También tengo un ordenador con pantalla de 22 pulgadas y la misma resolución: la imagen sale mucho mayor... y eso es fácil de entender con todas sus consecuencias. Aunque las resoluciones de ambas pantallas son iguales, el tamaño de la imagen solo depende del tamaño de la pantalla.
Ahora imaginemos que tengo dos ordenadores con pantallas de 22 pulgadas, pero con resoluciones distintas. La primera tiene resolución "estándar HD" (1920 x 1080) mientras que la segunda tiene del doble de resolución lineal (3840 x 2160, doble de ancho y doble de alto, cuatro veces más pixels). Pues resulta que la imagen se muestra con el mismo tamaño en las dos pantallas, como es lógico. La diferencia solo se nota si te acercas mucho y te fijas en los detalles (hay que tener buena vista, o una lupa). Esto también se entiende fácilmente.
Aquí viene la clave: la foto, que la hice con mi cámara, contiene una sola letra M captada de una gran pancarta. Repito: la letra M ocupa toda la imagen y llena cualquier pantalla, ya sea la del smartphone, la de 22 pulgadas con resolución estándar o la de 22 pulgadas con más resolución. Funciona perfecto.
Ahora me voy a plantear que quiero hacer una escena Tasker que solo contenga un cuadro de texto muy grande con una letra M y quiero que dicha letra ocupe toda la pantalla... de cualquier dispositivo. ¿Cómo lo hago? Muy fácil:
En las pantallas de resolución "estándar HD" (1920 x 1080) el cuadro de texto debe tener unas medidas de 1920 x 1080 pixels. Y eso es indistinto de las pulgadas. Funcionará bien en el smartphone y también en el ordenador HD. La letra M ocupará toda la pantalla.
En cambio, en mi ordenata de mayor resolución (3840 x 2160) el cuadro de texto debe tener una medida que sea 3840 x 2160 (doble de anchura y doble de altura). Así, la letra M ocupará toda la pantalla.
Resumiendo: el tamaño de la letra debe establecerse en proporción directa a la resolución, por lo que ya se ha explicado.
Ahora imaginemos que el texto (no una letra sino una palabra) debe ocupar la décima parte de la altura de la pantalla. Pues ese texto deberá tener 108 pixels de altura en la primera pantalla, y el doble (216 pixels) en la segunda. Evidentemente, la imagen será mucho más pequeña en el smartphone, pero mantendrá las proporciones en su escala.
Por tanto, a la hora de definir el tamaño del texto yo creo que solo hay que preocuparse de la resolución, siendo irrelevantes el tamaño de la pantalla y la densidad de pixels (por pulgada o por centímetro).
Si tienes un solo texto (o textos de un único tamaño) debería ir bien utilizar el primer método de Carcacia en este hilo: la regla de tres en función de la resolución lineal. Si tienes textos de diferentes tamaños puede ser mejor el segundo método de Carcacia: mediante unas cuantas acciones ajustas el tamaño de todos los textos en función de la resolución lineal.
Pueden surgir pequeños desajustes, ya sea porque las distintas pantallas tienen diferentes proporciones (16:9 , 4:3 , etc) o porque los cálculos están obligados a desperdiciar decimales. No se puede establecer un tamaño de letra de 10.25 pixels de altura. Esos errores derivados del redondeo decimal serán más significativos con tamaños de letra pequeños. También puede ser que Tasker cometa algún otro "error" relacionado con los márgenes y la legibilidad: es habitual dejar algún pixel o algún "milímetro" de hueco entre el texto y el recuadro que lo rodea, y eso puede ocasionar algo de descuadre, un cierto fallo en la regla de tres que no acaba de funcionar todo lo bien que esperamos por culpa de esos detalles.
Por todo ello yo llegaría a las siguientes conclusiones:
1) El tamaño del texto debe establecerse en proporción a la resolución lineal.
2) Una escena demasiado cuadriculada y apretada puede dar algunos errores de presentación por culpa de factores imposibles de controlar. Por tanto, es preferible construir las escenas menos apretadas, con algo de margen entre sus elementos, y con tamaños de texto generosos para que sean "sobradamente" visibles en la pantalla inicial (incluso para quien tenga cierta presibicia :-). De esa forma nos aseguramos de que las variaciones en otras pantallas producirán errores y desviaciones poco importantes, la escena y los textos seguirán siendo legibles, al menos para una persona normal (sin presbicia).
La apk que creo, tiene dos tareas :
mostrar (179)
A1: Realizar tarea [ Nombre:resolucion Parar:Apagado Prioridad:10 Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable: ] Si (if) [ %Con != 1 ]
(le puse el if para que solo haga una vez el calculo de resolucion. Luego si hago clik en el primer item de la escena establece Con a 0 para probar que vuelva a calcularlo)
A2: Mostrar Escena [ Nombre:letra Mostrar como:Actividad a pantalla completa Posición Horizontal:100 Posición Vertical:100 Animación:Sistema Mostrar Botón Salida:Encendido Continuar tarea inmediatamente:Apagado ]
A3: Mostrar Escena [ Nombre:letra Mostrar como:Actividad a ventana completa Posición Horizontal:100 Posición Vertical:100 Animación:Sistema Mostrar Botón Salida:Encendido Continuar tarea inmediatamente:Apagado ]
(lo muestro como pantallacompleta y tambien como ventana para probar pero el resultado es el mismo).
resolucion (180)
A1: Prueba [ Tipo:Display Resolution Datos: Almacenar Resultado en:%Resolucion ]
A2: Separar variable [ Nombre:%Resolucion Separador:x Eliminar base:Apagado ]
A3: Establecer variable [ Nombre:%Tamaño160 A:%Resolucion2*160/1232 Calcular:Encendido Añadir:Apagado ]
A4: Establecer variable [ Nombre:%Con A:1 Calcular:Apagado Añadir:Apagado
Resultado de ejecutar la apk en la tablet:
http://img.tapatalk.com/d/14/04/22/u4esaqas.jpg
Resultado de la apk en el Note:
http://img.tapatalk.com/d/14/04/22/6urezegy.jpg
A no ser que me digáis algo por fuerza tengo que concluir que no funciona. La prueba es concluyente. (siempre que no haya hecho algo mal que no creo jeje).
Lo que decís los dos desde luego es lo más lógico y ojalá fuera así pero parece que tasker no es tan lógico.
La explicación para mi es que el tamaño de la letra no está relacionado con los pixels en tasker. Creo que cuando tu pones letra a 160 no quiere decir 160 pixels de altura.
Evidentemente funciona pero solo si el tamaño de la pantalla también sigue esa proporción que se establece en la regla de tres. Por ejemplo si la creo en un dispositivo de 10 pulgadas con 1000 pixels para un tamaño de letra de 10 pues funcionara para un dispositivo de 5 pulgadas y 5000 pixels, me dará que la letra debe ser de tamaño 5.
No he creído necesario dejaros la apk para probarla, pero si queréis os dejo el enlace.
carcacia
22/04/14, 10:45:04
Igual es una tontería esto que voy a decir, pero puede ser que la tablet, de las proporciones al revés que un móvil, o sea, uno con carácter vertical y la otra con carácter horizontal? Quiero decir, en el Note, entiendo que es ancho x alto, pero puede ser q en la tablet el ancho sean los 1232 y el alto los 800?
Y que por ese motivo lo que falle sea la regla de 3?
De tablets no entiendo, tengo una con Android 2.2 que la uso solo para leer y aun con esa tarea ya se peta
Es que no sé, no es que me encabezone en que mi método tenga que funcionar, es que a mi entre los dispositivos que he probado me funciona.
Caravantes
23/04/14, 00:33:11
Igual es una tontería esto que voy a decir, pero puede ser que la tablet, de las proporciones al revés que un móvil, o sea, uno con carácter vertical y la otra con carácter horizontal?
Mlesir ha hecho muy bien sus deberes. Si te fijas, en la parte superior de la escena se ve la resolución, y deduzco que es la resolución obtenida "internamente" del propio dispositivo: en la primera imagen se ve 800x1232; en la segunda imagen se ve 800x1280. Ambas están en el mismo "orden", y la diferencia entre ambas resoluciones es mínima, por lo tanto la regla de tres da unos resultados muy similares de 160 y de 166.23 que dieran verse de forma muy similar, pero eso no es lo que ocurre.
Como posibilidad remota, se me ocurre que tal vez el problema sea... que la fórmula está metiendo decimales en un valor (o variable) que no está preparado para admitir decimales sino números naturales. Algunas veces este tipo de fallos provocan resultados desastrosos. Mlesir, prueba a corregir la acción para añadir un redondeo a la baja para que la fórmula devuelva un número natural (166)
A3: Establecer variable [ Nombre:%Tamaño160 A:floor(%Resolucion2*160/1232) Calcular:Encendido Añadir:Apagado ]
Si esa corrección no diese buen resultado tendremos que darnos por vencidos y reconocer que la regla de tres no funciona, o que al menos no funciona bien en todos los dispositivos.
Mlesir, si exportas eso como XML, yo estaré encantado de probarlo y poner aquí una foto para que podamos comparar resultados en más dispositivos.
Aqui os dejo el enlace a la carpeta que contiene la apk, el xml y todas las capturas de pantalla:
PARA IMPORTAR EL XML TENEIS QUE RENOMBRAR EL ARCHIVO COMO "loquesea.prj.xml"
https://www.dropbox.com/sh/w68uvnez43wvgzu/GgUmUhTL8Z
Yo creo que lo suyo es probarlo con la Apk. Al fin y al cabo estamos hablando de textos en apks que creemos y para ser más rigurosos con la prueba creo que es mejor. Como vereis los permisos que pide la aplicación son los mínimos, no puedo quitarlos. En todo caso si no quereis y preferís usar el xml también lo entiendo. Podéis exportar vosotros mismo el xml y hacerlo apk ( es otra opción).
He creado una escena principal desde la cual puedes probar las dos formas de mostrar los texto CON variable(siguendo el metodo creado por carcacia) y SIN variable utilizando el reducir texto.
La cuadrícula de las escenas esta a 10, o sea con el máximo de puntos para mover los elementos.
He intentado reproducir lo que comentabamos de que a veces al reducir el tamaño de letra Tasker te lo deja enano pero no lo he conseguido, aunque a mi también me ha pasado a veces. De todos modos esto creo que se puede evitar dandole a la lupa dos veces lo que hace que Tasker re-escale la escena. De este modo podemos ver como queda el texto y cambiarlo si vemos algo mal.
Ademas he creado dos tamaños de letra para la variable el 160 y el 18.
Para mi las conclusiónes están claras pero esperaré a ver vuestras capturas. Aunque mucho me temo que tendremos que utilizar el reducir tamaño texto y conformarnos con los margenes que crea, que para mi gusto son demasiados porque en muchas escenas necesitamos meter muchas cosas y tenemos que apurar el espacio ( lastima que no se pueda hacer scroll).
Otra cosa IMPORTANTE: como veréis en la escena principal hay cuatro items. Pues bien el segundo( mostrar CON variable) y el cuarto son idénticos. Sólo cambia el tamaño y disposición del item. Pues como comprobareis a pesar de estar marcado el reducir tamaño el segundo no lo ajusta, no lo reduce, el cuarto si.
Haciendo pruebas me he dado cuenta de que si el texto se pone en más de una linea ya no funciona lo de reducir el texto. Podéis hacer la prueba cogiendo una escena y creando dos textos, uno digamos alargado en una sola linea y otro no. Ponerle a los dos un tamaño enorme, en ambos marcais reducir texto.
Veréis como dándole a la lupa sólo se re escala el que ocupa una linea. Será un BUG???
ESCENAS EN LA TABLET SEGUN SE VEN EN TASKER:
510901
510902
510903
ESCENAS EN EL NOTE:
510904
CON VARIABLE
510905
SIN VARIABLE
510906
ESCENAS EN LA TABLET:
510907
CON VARIABLE
510908
SIN VARIABLE
510909
Stenary
23/04/14, 16:20:25
No he probado nada de todo este lio, pero en mi caso, hago una app con un motorola Defy con pantalla de 3,7'' y 480x854, de lo mas pequeño que hay y tal, pues primero, que no esta la opcion en Miscelaneo- Prueba de Display resolution, no se si exportanto una app que tenga esto podria sacr esta info o no podria.
Pues el caso es que esta app funciona de maravilla en otros moviles, un Optimus G mio, una tablet de 7'', un galaxy s2 y un galaxy scl, un L7 y creo que aun no he probado en mas moviles.
Mi deduccion de todo esto, es que si haces la ap con un movil viejo, y pequeño es mejor que con un movil moderno y grande, primero por el tema de compatibilidad de versiones, y segundo por tema de tamaño, al parecer si va a mas grande, no hay problema ni hace falta mucha historia. De todas maneras tampoco he puesto mucho texto, pero si que os confirmo que creandolo con un movil de poca resolucion y pulgadas, no hace falta nada de este embrollo.
Siento no ser de mas ayuda, si puedo probare lo que aporta Mlesir y subire fotos a ver que pasa en los 3 dispositivos que tengo a disposición, Defy, Optimus y tablet.
ruco1980
23/04/14, 17:31:32
Hola mlesir...no entiendo nada de lo que se está diciendo aquí jejej...pero con el fin de ayudar he instalado la apk por si os sirve las pruebas...Te adjunto las capturas en orden 1,2,3 y 4...
1 sería al abrir la apk...y el resto en orden...la que veo que sale bien es la número 3 de "PRUEBA SIN"....
El móvil es un xiaomi red rice, pantalla 4,7 pulgadas, resolución 1280x720
Si te hace falta para más pruebas puedo instalarla luego a la noche en una tablet BQ Curie de 8 pulgadas (ahora no recuerdo la resolución).
Un saludo!
carcacia
23/04/14, 17:45:30
511035511036
511037511038
Pues si que falla. Vuelvo a cambiar el "Solucionado" por consulta. y a ver si llegamos a algo claro. Porque no se vosotros, pero a mi lo del ajuste vertical me sigue sin convencer, creo que no tienes control sobre el tamaño, aunque bueno, visto lo visto, por la regla de 3 tampoco.
Entonces, tendrá que ver con el tamaño de la pantalla?
Caravantes
23/04/14, 19:23:56
no entiendo nada de lo que se está diciendo aquí jejej
El problema es crear escenas con textos que se lean bien en cualquier aparato Android, ya sea pantalla grande o pequeña, con mucha o poca resolución.
Creíamos haber encontrado un método para que los textos salieran proporcionados a la (resolución de la) pantalla, pero Mlesir ha comprobado que no funciona.
Estamos haciendo pruebas en distintos dispositivos para tratar de ver qué pasa y si encontramos alguna solución.
Ahí van mis pruebas en un Nexus 4.
Para abrumar menos he reducido y juntado las 4 imágenes, en la parte de abajo hay un fragmento sin reducir para que se aprecie la resolución.
511102
(este texto esta a 15 de tamaño y con reducir)
Valor de Resolución: 768x1184,
Valor de tamaño160 despues de hacer la regla de tres en este dispositivo (si 1232 - 160 =>para Tamaño160-X): 153
valor de tamaño18:17
Stenary la acción es "Prueba" que esta en miscelaneo. Mira si quieres el recopilatorio, seccion miscelaneo para ver más detalles sobre esta acción.
Ruco muchisimas gracias por colaborar.
ACLARACIÓN- En la primera pantalla el texto cuarto el que se ve bien y en una linea muestra la misma pantalla el segundo texto, el mostrar CON. Es simplemente para que veáis lo que decía de que aun siendo identicos y teniendo marcados los dos el reducir texto, en el que esta en dos o mas lineas no se reduce.
CONCLUSIONES: ( personales )
1- Con el sistema de reducir texto puedes estar seguro de que el texto no se cortará.
2- Reducir texto sólo funciona con textos que estén en una sola linea. Quiza estamos ante un BUG o fallo de Tasker, o quiza sea una limitación.
3 - Con reducir texto SI puedes controlar el tamaño del texto. Sabrás exactamente que aspecto queda si pulsas sobre la lupa de manera que Tasker re-escale la escena.
4- El texto (si el parametro "Modo ajuste vertical" esta marcado en ninguno) se vera igual de grande en una pantalla de 3.5 o en una de 10 pulgadas. Si las ponemos al lado comprobamos que la letra es igual de grande.
4- El parametro "tamaño texto" no se relaciona con los pixels. ( este para mi es el punto más dudoso).
5- Desgraciadamente creo que el sistema de la regla de tres no funciona. Al menos de manera universal. No te puede dar la seguridad de que se mostrará bien en todos los dispositivos. Sólo en aquellos que guarden una relacion parecida al dipositivo original, en cuanto a tamaño y resolucion. Por lo que parece el que mejor resultado ha tenido es carcacia con su Aquaris 5 (540x960). Me explico: mi tablet tiene 10 pulgadas y 1232 pixels de alto. El móvil de carcacia tiene 5 pulgadas (la mitad del tablet). Si le móvil de Carcacia tuviera también la mitad de pixels también(616) se mantendría la proporción y por tanto se vería perfecto. Es el que mejor se ve porque aunque el tamaño baja a la mitad la resolución vertical también baja bastante. Al contrario el xiaomi y el note bajan a la mitad casi de pantalla pero nos sólo no bajan en pixels si no que suben (1280 frente a los 1323 del tablet).
6- La manera de reducir el texto en Tasker es cierto que es un poco "bestia". Para mi gusto el parametro reducir texto entra en juego demasiado pronto cuando parece que todavía hay mucho margen para aumentar la letra. Quizá esto se podría cambiar por parte del desarrollador.
RESUMEN: no queda más narices que utilizar reducir el texto si queremos que sea universal de verdad y conformarnos con los margenes tan amplios que tasker deja en la altura. Otra forma sería saber el tamaño ( OJO no la resolución del dispositivo), si consiguieramos saberlo podríamos utilizar otras estrategias como: utilizar una variable en el tamaño o crear una escena para cinco o seis tamaños de dispositivos, etc.
carcacia
23/04/14, 20:31:43
RESUMEN: no queda más narices que utilizar reducir el texto si queremos que sea universal de verdad y conformarnos con los margenes tan amplios que tasker deja en la altura. Otra forma sería saber el tamaño ( OJO no la resolución del dispositivo), si consiguieramos saberlo podríamos utilizar otras estrategias como: utilizar una variable en el tamaño o crear una escena para cinco o seis tamaños de dispositivos, etc.
A esto es a lo que me refería con mi última pregunta. Habrá que investigar...
carcacia
08/05/14, 20:28:22
Bueno, ahora con mi aplicación de secciones de hormigón finalizada, este es el último escollo. Sabemos algo nuevo sobre como saber el tamaño de la pantalla. He estado rebuscando. Pero no he encontrado nada...
Tendré que usar el reducir tamaño, pero miedito me da, jeje
Nada nuevo desgraciadamente.
carcacia
12/05/14, 16:55:17
Bueno, se me ha ocurrido lo siguiente, a ver que os parece.
Tras las investigaciones de Mlesir, creo que hemos llegado a la conclusión de que el ajuste de texto depende del tamaño de la pantalla y no de la resolución. La resolución de cualquier dispositivo la podemos obtener mediante tasker en el apartado Prueba, pero el tamaño de la pantalla en pulgadas no. Pues se me ocurre, que la indique el usuario la primera vez que abre la aplicación, y que después no le vuelva a salir más dicho menú. Bueno, y que también dentro de la aplicación haya un apartado de configuración, donde pueda volver a cambiar el tamaño por si se ha equivocado. Quizás no sea muy elegante, pero no se me ocurría otra solución.
¿Como montamos el tinglado este?
1.- LA ESCENA DE CONFIGURACIÓN PREVIA
Creamos una nueva escena, la escena que se abrirá la primera vez que usemos nuestra aplicación, donde elegiremos el tamaño de la pantalla en pulgadas:
521322521323
El antes y después de clicar sobre las pulgadas en esa escena
Los items los he nombrado con lo que creo que son los tamaños más habituales de pulgadas, desde las 3,5" hasta 10.1". Y al dar click sobre cada uno, simplemente se establece la variable %Horconpul a dicho número de pulgadas.
Para que el recuadro que pone: "Ha elegido un tamaño de X pulgadas" aparezca en pantalla al clickar, en el elemento rueda, en la cuarta pestaña, la que se llama clic en Item, he puesto un visualizar elemento. Y el texto en la escena lo he ocultado.
El Botón de confirmar hace lo siguiente:
1. SI %Horconpul No ajustado
......2. Flash No se ha elegido tamaño de pantalla
3. Else
......4. Realizar tarea: Confirmar
5. FIN SI
(Esto hace que si no elegimos el tamaño de pantalla, no avanzaremos de aquí)
2.- LA TAREA CONFIRMAR
Aquí generaremos los cálculos para ajustar el texto en cualquier dispositivo, después de haber elegido el tamaño de pantalla.
521324
¿Que es todo esto de la imagen?
Primero, la dimensión de la pantalla que se da en pulgadas es de una esquina a la contraria. Pero dado que hay diferentes formatos de pantalla, esto de por si solo, no nos ayudaría mucho. Creo que los formatos más habituales son 16:9, 16:10 y 3:4 o algo así. Mi dispositivo, tiene pantalla 16:9, con lo que digamos, es el formato con mayor altura respecto al ancho; y por este motivo, cuando exporto mi app a otros dispositivos, la ajusta verticalmente, y a los lados aparecen unas tiras del color elegido de fondo de la app.
Entonces, a mi lo que me interesa es saber la dimensión vertical en pulgadas, tanto de mi móvil, como del dispositivo donde lo instale el usuario. Y para saber la proporción de la pantalla, si me puedo ayudar de la resolución.
Lo que hay a la izquierda en la imagen, antes de la raya horizontal, es el sistema para saber cuanto mide a lo largo en pulgadas mi móvil. Para ello, lo primero que hago es hallar la hipotenusa con las dimensiones de la resolución, y luego la regla de 3 para saber cuantas pulgadas son, en mi caso 4,358.
Luego, viene un ejemplo, lo he hecho con los datos que ha dado Mlesir de su tablet. Lo que hago es lo mismo, saber la hipotenusa de su dispositivo en datos de resolución, y luego pasarlo a pulgadas por la regla de 3. En su caso la tablet tiene 8.47" de alto.
Por último, y como hacíamos con la resolución, establecemos una regla de 3, entre el tamaño de texto y el tamaño de la pantalla, en este caso en pulgadas. El ejemplo elegido es:
un tamaño de texto 25 -> en mi móvil de altura 4,358"
Tendrá "Y" tamaño -> en el dispositivo instalado de 8,47"
Una vez dicho esto, la tarea queda así:
1. Prueba Display Resolution -> %horresul
2. Separar variable -> %horresul ... x
3. Establecer variable -> %horhgra A... sqrt(((%horresul1)^2)+(%horresul2)^2)) (CALCULAR)
4. Establecer variable -> %horhpul A... (%horresul2)*(%Horconpul)/(%horhgra) (CALCULAR)
5. For %hortexto ITEMS (los tamaños de texto de cada uno, en mi caso:) 15,16,17,18,20,22,25,30
......6. Establecer variable %Hortam(%hortexto) A.... (%horhpul)*(%hortexto)/4.358 (CALCULAR) (Recordar que en todos los textos de las escenas deberán tener de valor esta variable, por ejemplo, un texto de tamaño 17, habrá que poner %Hortam(17)
7. End For
8. Mostrar escena -> La de inicio de la app
9. Destruir escena (esta de configuración)
3.- LA TAREA QUE LANZA LA APLICACIÓN
Hay que modificar esta tarea para que la escena de configuración se lance solo la primera vez. Para ello:
1.SI %Hortam(16) -> No Ajustado (usar cualquiera de los tamaños elegidos en el for de la tarea anterior)
......2. Mostrar Escena -> Configuración
3.Else
......4. Mostrar escena -> La de inicio de la aplicación
5. Fin si
Después, como ya he dicho al principio, será poder tener acceso a un menú de configuración en la aplicación para poder modificar ese valor.
Nota: Esto es todo teoría, porque aun no he tenido tiempo de probarlo en otros dispositivos, sobre todo de probarlo en el S3 (misma pulgadas que el mío pero diferente resolucion), en el que quedaba claro que el metodo inicial de la regla de 3 con la resolución, no servía.
Como siempre, se agradecen los comentarios y correcciones. Un saludo
Caravantes
13/05/14, 03:04:33
Como siempre, se agradecen los comentarios y correcciones. Un saludo
Tiene muy buena pinta. Te sugiero que hagas una mini-app solo para verificar esa teoría con tres o cuatro escenas que contuvieran distintos textos. Podríamos probarla varios de nosotros (yo me ofrezco ya), copiaríamos aquí los pantallazos para ver cómo se visualiza en distintos dispositivos.
carcacia
15/05/14, 22:30:48
Bien, aquí está la app para hacer pruebas de este sistema que se me ha ocurrido unos post mas arriba.
La primera vez que se carga aparece esta escena:
523264523265
Mi dispositivo es de 5 pulgadas, y las diferentes escenas se ven tal que así:
523266523267523268523269
La primera es el menu inicial de la app con tres botones y el de salida. Se supone que una vez establecidas por primera vez las pulgadas, al iniciar la app en las siguientes ocasiones, se abrirá aquí.
La segunda imagen se corresponde a los textos pequeños, con varios ejemplos.
La tercera, a los textos grandes, basicamente es el numero ese bastante grande, y que en mi dispositivo estaba bastante ajustado lateralmente, a ver que pasa en otros casos con el...
La ultima, es el menu de configuracion, donde poder volver a cambiar las pulgadas
Podeis ver que he puesto 18 medidas de pulgadas diferentes, he curioseado un poco por internet. Si veis que falta alguna que sea común, avisad, para añadir más. Sobre todo de tablets, que no controlo mucho.
Aquí la apk. Si quereis subo también el xml. Pero con esto me surge una duda. Que hai que subir? llega con el xml del proyecto, hay que subr también los de las tareas y las escenas? (no lo tengo claro). Y bueno, la imagen de fondo en la escena inicial.... pues no tiene mucho.
https://dl.dropboxusercontent.com/u/68368004/Textos.4.apk
Un saludo.
carcacia
15/05/14, 22:34:46
Estos son unos ejemplos con mi movil, de que pasaría si elijo mal las pulgadas.
En este caso, me voy por abajo, elijo 4":
523276523277523278
Y en este me paso por arriba, me voy a 7":
523279523280523281
Caravantes
16/05/14, 01:16:37
Bien, aquí está la app para hacer pruebas de este sistema que se me ha ocurrido unos post mas arriba.
Ahí va mi prueba hecha en un Nexus 4 (4,7 pulgadas con una resolución de 1280x768):
523316
carcacia
16/05/14, 08:43:00
Ahí va mi prueba hecha en un Nexus 4 (4,7 pulgadas con una resolución de 1280x768):
Pues menuda jodienda....
carcacia
16/05/14, 08:52:03
Entonces en función a que se mide el tamaño del texto. Quiero decir, un texto de tamaño 20, son 20 que?
Estará en función de ambas cosas, el tamaño en pulgadas, pero dentro de eso de la resolución?
carcacia
17/05/14, 12:19:20
Bueno, me gustaría que probaseis esta versión de la aplicación para cambiar el tamaño del texto. Es exactamente igual a la anterior, pero en el cálculo, he puesto una fórmula que tiene en cuenta tanto el tamaño en pulgadas como la resolución para dicha pantalla.
Os agradecería que la probaseis y expusieseis aquí las capturas. He calculado a mano el tamaño que tendría que tener el texto que en el mio es 16, en el dispositivo de Caravantes y ahora debería dar un tamaño menor aun. A ver que pasa...
https://dl.dropboxusercontent.com/u/68368004/Textos.5.apk
Un saludo
Caravantes
18/05/14, 02:48:59
Bueno, me gustaría que probaseis esta versión de la aplicación para cambiar el tamaño del texto. Es exactamente igual a la anterior, pero en el cálculo, he puesto una fórmula que tiene en cuenta tanto el tamaño en pulgadas como la resolución para dicha pantalla.
Vuelvo a probar en el Nexus 4 (4,7 pulgadas con una resolución de 1280x768):
524282
Parece que va encajando mejor.
Estoy impaciente por ver el algoritmo.
Si necesitas más pruebas, repetimos el sistema. Se me acaba de ocurrir un brainstorm: Que en esa app de pruebas tal vez fuera posible poner dos reguladores para que el usuario jugase con los porcentajes de relevancia que deben tener los dos factores básicos que parecen influir en la ecuación: por un lado el tamaño de la pantalla y por otro la resolución. Sería mover uno y otro regulador hasta que los textos encajen ocupando toda la casilla sin salirse. No me hagas mucho caso, igual es una tontá.
carcacia
18/05/14, 17:24:48
Me parece buena idea. A ver si trabajo en ello. Mientras sería bueno que alguien más la intentase probar para tener mas muestras
Disculpar el retraso. Ahí van mis capturas:
http://img.tapatalk.com/d/14/05/19/4ysu6u8e.jpg
http://img.tapatalk.com/d/14/05/19/avemasyr.jpg
http://img.tapatalk.com/d/14/05/19/y7evesat.jpg
http://img.tapatalk.com/d/14/05/19/rudu4a7u.jpg
http://img.tapatalk.com/d/14/05/19/9esuvuse.jpg
http://img.tapatalk.com/d/14/05/19/7y8y7evy.jpg
Mi Note 1 tiene 5.3 pulgadas.
carcacia
18/05/14, 20:08:43
pues aunque se a adaptado algo mas tampoco es la solucion. Ya en el de Caravantes, aunque estaba mas adaptado, no lo estaba del todo.
Por cierto, habrá que incluir 5.3 en la lista
carcacia
18/05/14, 20:19:03
igual no influye, pero por intentar seguir haciendo números, aparte de las pulgadas y la resolución me podríais decir que valores os da en PRUEBA -> Display DPI ???
Gracias, un saludo
Caravantes
19/05/14, 00:51:28
me podríais decir que valores os da en PRUEBA -> Display DPI ???
Nexus 4
Pulgadas: 4,7
Resolución 1280x768
Display DPI: 319.79x318.745
No sabía/recordaba que Tasker pudiera consultar la resolución en DPI (dots per inch, puntos o píxels por pulgada). Ahora que lo veo, se me ocurre que... Si partimos de la resolución-vertical y la dividimos entre el valor DPI-vertical... obtenemos las pulgadas verticales de la pantalla. Del mismo modo, si partimos de la resolución-horizontal y la dividimos entre el valor DPI-horizontal averiguamos las pulgadas horizontales de la pantalla. A su vez, si tenemos las pulgadas verticales y horizontales, usando pitágoras obtenemos la diagonal de la pantalla en pulgadas. He hecho los cálculos a mano y en mi caso sale una diagonal de pantalla de 4.6718 pulgadas, que redondeando (a la décima de pulgada) encaja perfectamente con las 4.7 pulgadas que "oficialmente" tiene mi Nexus 4.
Por tanto no hay necesidad de que el usuario seleccione las pulgadas de su dispositivo, eso es algo que la propia app puede calcular por sí sola. Es más, creo que la app de pruebas debería mostrar en pantalla esos tres valores (Resolución, DPI y PulgadasDiagonales), para que esos datos aparecieran visualmente en los mismos pantallazos en que se comprueba si los textos están correctamente escalados.
carcacia
19/05/14, 01:46:31
Nexus 4
Pulgadas: 4,7
Resolución 1280x768
Display DPI: 319.79x318.745
No sabía/recordaba que Tasker pudiera consultar la resolución en DPI (dots per inch, puntos o píxels por pulgada). Ahora que lo veo, se me ocurre que... Si partimos de la resolución-vertical y la dividimos entre el valor DPI-vertical... obtenemos las pulgadas verticales de la pantalla. Del mismo modo, si partimos de la resolución-horizontal y la dividimos entre el valor DPI-horizontal averiguamos las pulgadas horizontales de la pantalla. A su vez, si tenemos las pulgadas verticales y horizontales, usando pitágoras obtenemos la diagonal de la pantalla en pulgadas. He hecho los cálculos a mano y en mi caso sale una diagonal de pantalla de 4.6718 pulgadas, que redondeando (a la décima de pulgada) encaja perfectamente con las 4.7 pulgadas que "oficialmente" tiene mi Nexus 4.
Por tanto no hay necesidad de que el usuario seleccione las pulgadas de su dispositivo, eso es algo que la propia app puede calcular por sí sola. Es más, creo que la app de pruebas debería mostrar en pantalla esos tres valores (Resolución, DPI y PulgadasDiagonales), para que esos datos aparecieran visualmente en los mismos pantallazos en que se comprueba si los textos están correctamente escalados.
Jeje, había llegado a la misma conclusión, y por eso quería corroborarlo con los datos de alguien más. Así ni el usuario tiene que introducir ningún dato, que sería lo óptimo. Con todo, he llegado a la conclusión que uno de los grandes fallos quizás era asumir que mi BQ Aquaris5 tenia la pantalla de 5" exactas, y al hacer la fórmula, no era así.
A ver si modifico la app y subo la versión con esto.
carcacia
20/05/14, 15:32:15
Hola. Esta es la tercera versión de esta app para controlar los tamaños de los textos en los diferentes dispositivos:
Cambios realizados:
- Con los nuevos conocimientos que he ido adquiriendo sobre el tema tras tanto insistir y hacer números, he suprimido la pantalla de configuración inicial donde el usuario elegía el tamaño en pulgadas de su dispositivo. Porque tasker es capaz de darnos información de la resolución y los DPI, así que con un poco de matemáticas se logra saber las pulgadas exactas.
- Por tanto, también he eliminado la pantalla de configuración interna en la app, y la he sustituido por una llamada Datos, donde se puede comprobar las dimensiones, tanto en resolución como en pulgadas.
El código de la tarea de lanzamiento de nuestra APP:
1. SI %Prutam(16) NO Ajustado
...... 2. Prueba ... Display Resolution -> %Pruresul
...... 3. Separar Variable ... %Pruresul, x
...... 4. Establecer Variable ... %Pruhres, sqrt(((%Pruresul1)^2)+((%Pruresul2)^2)), CALCULAR
...... 5. Prueba ... Display DPI -> %Prudpi
...... 6. Separar Variable ... %Prurdpi, x
...... 7. Establecer Variable ... %Prubpul, (%Pruresul1)/(%Prudpi1) CALCULAR
...... 8. Establecer Variable ... %Pruapul, (%Pruresul2)/(%Prudpi2) CALCULAR
...... 9. Establecer Variable ... %Pruhpul, sqrt(((%Pruapul)^2)+((%Prubpul)^2)), CALCULAR
..... 10. Establecer Variable ... %Prudpiinv, 1000/(%Prudpi2)
..... 11. FOR ... %prutexto, ITEMS: 10,15,16,17,18,20,22,25,30,150
.......... 12. Establecer Variable ... %Prutam(%prutexto) -> (%Prudpiinv)*(%prutexto)/4.511, CALCULAR
..... 13. END FOR
..... 14. Mostrar escena -> Inicio prueba
15. Else
..... 16. Mostrar escena -> Inicio prueba
17. Fin SI
Explicación de cada punto:
1. Esto hace que si ya tenemos los textos ajustados, no vuelva a hacer esta parte de la tarea, ahorrando tiempo al ejecutar la aplicación.
2. Para saber la resolución del dispositivo. Ejemplo: 540x960 (ancho por alto)
3. Separamos la resolución para trabajar con ambos valores
4. Calculamos la diagonal en resolución por el teorema de pitágoras: H²= a² + b²
5. Así sabemos los DPI del dispositivo. Ejemplo: 228.6 x 221,4321
6. Separamos los valores para trabajar con ambos
7. Calculamos el tamaño del ancho(b) en pulgadas, para ello dividimos el ancho de la resolucion entre el ancho de los dpi, es decir, la primera hija de ambos
8. Igual que el anterior, pero en este caso con las segundas hijas (Inciso, esto me recuerda a Juego de Tronos:D) para así saber el alto en pulgadas
9. Volvemos a usar pitágoras, esta vez para saber el tamaño en pulgadas de la diagonal. Que es al que se hace referencia cuando decimos: esa pantalla es de tantas pulgadas. Como ejemplo, mi Bq Aquaris5 que tiene la pantalla de 5 pulgadas, sale la cifra de 4.933 para ser más exactos
10. Este es quizás el paso más flojo, pero mi conclusión es la siguiente: Si tenemos dos dispositivos de igual tamaño de pantalla pero diferente resolución, y establecemos el tamaño de texto igual en ambos, por ejemplo 20, en el de mayor resolución se vería más grande, y si hacemos la regla de tres directa entre el tamaño del texto y DPI vertical de cada dispositivo, el error sería mayor. Me explico con un ejemplo: Supongamos estos dos dispositivos:
-Dispositivo1: Pv1= 4.35" ... Rv1= 960
-Dispositivo2: Pv2= 4.35" ... Rv2= 1280
(Siendo Pv las pulgadas en vertical y Rv la resolución en vertical)
La relación, los DPI, es: Pv= Rv / Dv (es decir, el tamaño en pulgadas es igual a la resolución entre el DPI (Dv)). Esto daría el siguiente valor de DPI vertical:
-Dispositivo1: Dv1= 220.689
-Dispositivo2: Dv2= 294.251
(Es decir, a igual tamaño en pulgadas, el de mayor resolución, tiene mayor número de DPI)
Por tanto, teniendo esto en cuenta, y que a igual numero de tamaño de texto, se verá más grande en el de mayor resolución, si hacemos una regla de 3 directa, estaremos cometiendo un error:
T1 -> Dv1
T2 -> Dv2 (siendo T1 el tamaño de texto en 1, y T2 el del segundo, que es la incognita)
Con el ejemplo de tamaño 20 quedaría:
20 -> 220.689
T2 -> 294.251
El valor de T2 sería de 26,7. Por tanto si ya con 20 se veía más grande, con 26.7 aumentaría aun más. De ahí que la proporción deba ser inversa.
Y lo que planteo, es en vez de hacer la regla de 3 inversa, hacer la inversa de los DPI. O sea, 1/DPIvertical. Pero como esto daría del orden de 0.00algo y se perderían los decimales, hago la inversa con 1000 entre el DPI.
11. En el For, como siempre elegimos los diferentes tamaños que vayamos a usar en nuestra aplicacion
12. Ahora se hace una regla de tres directa con el valor de la inversa del dpi. El valor de 4.511 es la inversa del DPI vertical de mi dispositivo
Espero que se haya entendido
Varias de estas variables pueden ser locales en futuros proyectos, pero las hice globales con la intención de que aparezcan en esa pantalla de datos.
Aquí el enlace:
AÑADIDA NUEVA VERSION: Ahora salen los valores en la escena DATOS
https://www.dropbox.com/s/gr2yfgr455md812/Textos.7.apk
Espero las nuevas capturas, a ver si ahora si que se ajusta (dedos cruzados). Un saludo
http://img.tapatalk.com/d/14/05/21/resy8anu.jpg
http://img.tapatalk.com/d/14/05/21/me7a9a6u.jpg
http://img.tapatalk.com/d/14/05/21/baqaga7u.jpg
es normal q salgan las variables vacias?
carcacia
20/05/14, 23:19:24
uhmm, ahora que lo pienso puede que si, si no es la primera vez que la ejecutas, entiendo que ya no hace toda esa parte y que salen vacías. Añadiré para que le vuelva a dar valor a todas esas en el boton "datos por ejemplo.
Pero lo mejor es que los textos se ven muy bien, como debería ser, hay que contrastar con más casos, pero tiene buena pinta
Nueva versión (tb está dos post mas arriba):
https://www.dropbox.com/s/gr2yfgr455md812/Textos.7.apk
Caravantes
21/05/14, 01:17:30
Nueva versión (tb está dos post mas arriba):
525888
Ojo, hay una pequeña discrepancia con la resolución de este Nexus 4.
Resolución "oficial": 1280x768.
Resolución devuelta por la acción Tasker-Pruebas: 768x1184. La diferencia es en la resolución vertical (la mayor): 1280 oficial frente a 1184 según la acción Pruebas.
Claramente, las pulgadas diagonales calculadas por la app (4.424) no coinciden con las 4.7 pulgadas "oficiales".
No obstante, creo que es un error "pequeño" y asumible: la visualización de textos parece bastante ajustada. Felicitaciones.
Gracias por las explicaciones del algoritmo, y por esta excelente app de prueba, el gráfico te ha quedado para sobresaliente.
Cuando veo trabajos bien hechos, con cuidado y buenos detalles, como es el caso (incluso en una app de pruebas), siempre me viene a la cabeza una reflexión:
- "El cuidado con el que hacéis vuestro trabajo refleja el respeto que tenéis por vosotros mismos."
Frase de la película Stella (2011).
En este foro también ha habido otras personas que han hecho aportaciones muy cuidadas y que me han hecho recordar esa misma frase.
carcacia
21/05/14, 01:38:54
Gracias por las explicaciones del algoritmo, y por esta excelente app de prueba, el gráfico te ha quedado para sobresaliente.
Gracias. A ver si esta es la solución definitiva a este problema, y a partir de aquí podemos seguir con nuestras aplicaciones teniendo esta parte resuelta.
A ver si alguien más que lea hasta aquí aparte de Caravantes y Mlesir se anima a probarla para seguir contrastando casos, sobre todo por si hay más como el del Nexus. Por mi parte intentaré pasarsela a algunos amigos y ver que pasa.
Por cierto, me acabo de dar cuenta de que hay un error, me he confundido y he puesto la resolución vertical en la horizontal y la horizontal en la vertical. Pero los datos son correctos, simplemente se visualizan donde no deberían. Las pulgadas si están bien situadas
carcacia
21/05/14, 01:47:30
Ojo, hay una pequeña discrepancia con la resolución de este Nexus 4.
Por cierto Caravantes, he encontrado esto en un foro:
The buttons take up 96 pixels vertically on the Galaxy Nexus. Assuming the same size, that leaves 768x1184 "usable" resolution at 4.45 inches.
ruco1980
21/05/14, 10:08:30
Hola Carcacia.....ante todo enhorabuena por tu trabajo...no entiendo muy bien ya los datos técnicos de todo lo que se habla aquí pero he instalado la apk para colaborar con las pruebas y yo los textos en mi móvil los veo muy bien y creo que su adaptación es buena.
Mi dispositivo es un xiaomi red rice, resolución 1280x720 y "en teoría" 4,7"...digo en teoría porque a mí también me sale un resultado un poco distinto como a Caravantes, aunque, en mi opinión, yo creo que tus cálculos están bien y los resultados de 4,7", 5", etc...suelen ser más resultados "comerciales" que reales en longitud de pulgadas en pantallas...Ahí van mis pantallazos...perdonar pero es que no sé agruparlos para que ocupen menos espacio....
1 saludo!
carcacia
21/05/14, 10:35:30
Pasen la apk para probar
La tienes 4 mensajes mas arriba del tuyo, es un enlace de Dropbox
Hola Carcacia.....ante todo enhorabuena por tu trabajo...no entiendo muy bien ya los datos técnicos de todo lo que se habla aquí pero he instalado la apk para colaborar con las pruebas y yo los textos en mi móvil los veo muy bien y creo que su adaptación es buena.
Muchas gracias por probarlo ruco. Básicamente se trata de que cuando creas aplicaciones con escenas con tasker, al instalarla en otro dispositivo con tamaño de pantalla y resolución diferente, todo (imágenes, figuras, etc) se escala correctamente, excepto el texto. Entonces lo que pretendemos es encontrar la fórmula para que se logre escalar este también.
Con todo, en el tuyo se ve un poco más pequeño de lo que debería, pero igual influye ese tipo de fuente que usas, no sé. Pero creo que mientras no se vea más grande y por tanto se corten los textos, es un avance.
Un saludo, y gracias de nuevo, así podremos pulir este problema para crear nuestras app con tasker.
Caravantes
10/07/14, 02:35:16
Hoy encuentro un artículo en El Androide Libre, que puede resultar interesante para los que estáis intentando hacer apps o escenas que funcionen bien en aparatos con pantallas distintas. Os recomiendo leer el artículo... y también los comentarios que los internautas han añadido debajo.
La fragmentación de las pantallas en Android no es un problema real
http://www.elandroidelibre.com/2014/07/la-fragmentacion-de-las-pantallas-en-android-no-es-un-problema-real.html
gonza28
07/08/14, 08:35:57
Wow. Muy bueno. Lo que si, me gustaría probar pero la app ya no está en Dropbox
Buenas y enhorabuena por lo que os habéis currado este tema, sobre todo Carcacia. Me gustaría probar la aplicación de prueba pero no están los enlaces y tampoco la puedo construir porque sólo puedo consultar la resolución en la sección Pantalla, creo que con las últimas actualizaciones ha desaparecido la acción de consultar DPI. (Edito he encontrado esta acción, ahora esta en Pantalla/ Test Display/ y en tipo seleccionar DPI)
No se si además de problemas en ajustar el tamaño del texto, también habéis tenido problemas con ajustar el tamaño de las escenas que no estén creadas para mostrarse a "Actividad pantalla completa sin titulo". Por poner un ejemplo;
Tengo una aplicación que como tarea inicial lanza muestra una escena como "Actividad pantalla completa sin titulo", la escena está creada a la máxima resolución de mi teléfono que es 540x960. En la escena principal tengo algunos iconos que lanzan otras escenas, éstas ultimas tipo diálogos. Pues el problema es el siguiente, probado en un teléfono con resolución 1080X1920, la escena principal se ve perfectamente ajustada y proporcionada, en cambio las escenas tipo diálogos se ven desproporcionadas y fuera de la ubicación que las había colocado en la acción "mostrar escena".
Agradecería que colgases nuevamente la aplicación para comprobar si es la solución al problema de mi aplicación. Un saludo.
carcacia
21/09/14, 11:19:29
Hola de nuevo. Bueno, primero decir que por varios asuntos he estado desconectado de este mundillo. Siento no haber podido atender a estas peticiones de la app de prueba de textos.
También he de decir que tuve que cambiar de móvil, y no tenia copia de esta app en otro sitio, menos mal que era sencilla. Así que ayer me hice otra.
La app es en apariencia igual. Pero he hecho una ligera corrección, ahora en vez de tener en cuenta las dimensiones verticales, tengo las diagonales, a ver si así se logra ajustar aun más.
Bueno, y si alguno ha avanzado más en esto y me he perdido algo que lo diga :sisi1:
Aquí el enlace:
https://dl.dropboxusercontent.com/u/68368004/Prueba_Txt.2.apk
carcacia
21/09/14, 11:27:01
Bueno, y así es como se ve en el mio, y como se debería ver en los otros dispositivos si el sistema funciona.
584100584101
Bueno, no tiene más la pantalla principal donde aparecen los diferentes tamaños de texto, el botón "datos de dispositivo" que nos lleva a la escena en el que se ven los datos de cada dispositivo" y los botones salir.
En cuanto al código: la tarea que lanza la aplicación es esta:
1. Si %PtxtT(16) -> No ajustado (Esto evitará que vuelv a realizar estos cálculos cada vez que se ejecuta la aplicación)
..... 2. Test Display DPI -> %Ptxtdpi (Ofrece la información de los DPI del dispositivo)
..... 3. Test Display Resolución -> %Ptxtres (Ofrece la información de la resolución horizontal y vertical del dispositivo)
..... 4. Separar Variable %Ptxtdpi -> x (Dividimos los dpi por la "x" y en la hija uno tenemos horizontal y en la segunda los dpi vertival)
..... 5. Separar Variable %Ptxtres -> x (Dividimos la resolución por la "x" y en la hija uno tenemos la horizontal y en la segunda la vertival)
..... 6. Establecer Variable %Ptxtresdig -> sqrt(((%Ptxtres1)^2)+((%Ptxtres2)^2)) CLACULAR (Simple pitágoras para calcular el valor de resolución de la diagonal, D^2=H^2 + V^2)
..... 7. Establecer Variable %PtxtVpul -> (%Ptxtres2)/(%Ptxtdpi2) CALCULAR (Calculamos las pulgadas en dirección vertical, para ello se divide la resolución vertical entre los dpi verticales)
..... 8. Establecer Variable %PtxtHpul -> (%Ptxtres1)/(%Ptxtdpi1) CALCULAR (Calculamos las pulgadas en dirección horizontal, para ello se divide la resolución horizontal entre los dpi horizontales)
..... 9. Establecer Variable %Ptxtpuldig -> sqrt(((%PtxHpul)^2)+((%PtxtVpul)^2)) CLACULAR (Otro pitagoras, esta vez para saber las pulgadas en diagonal, el valor caracteristico)
.... 10. Establecer Variable %Ptxtdpidig -> (%Ptxtresdig)/(%Ptxtpuldig) CALCULAR (Dividimos resolución diagonal entre las pulgadas para obtener el valor en dpi de la diagonal de toda la pantalla)
.... 11. Establecer Variable %PtxtInv -> 1000/(%Ptxtdpidig) CALCULAR(Hacemos la inversa y multiplicamos por 1000 para que nodesaparezca el valor por desaparición de decimales)
.... 12. For %ptxttam ->Items-> 10,16,20,25,150 (Un for donde se añadiran los diferentes tamaños de texto que empleará nuestra app)
........ 13. Establecer Variable %PtxtT(%ptxttam) -> (%PtxtInv)*(%ptxttam)/4.492 CALCULAR (Esta es la regla que busca la equivalencia entre nuestro dispositivo y otros, en este caso, entre el mio y los vuestros, y en el mio el 4.492 es el valor de la inversa. Por eso, si este código funcionase y lo quisieseis introducir en vuestra app, en el paso11 debereis cambiar ese valor por el que os de a vosotros en la fórmula)
.... 14. End FOR
.... 15. Mostrar escena -> Escena inicio
16. Else
.... 17. Mostrar escena -> Escena inicio
18. Fin si
Cokeman79
26/12/14, 22:30:52
La linea ..... 9. Establecer Variable %Ptxtpuldig -> sqrt(((%PtxHpul)^2)+((%PtxtVpul)^2)) CLACULAR
__________________________________________________ _t ahi le falta una T me volvi loco jajaja no veia el error.
Ayuda por favor!!!!!!!
Es la desesperación de no encontrar el error que tengo con mi nexus 4.
Copio exactamente el codigo que comparten y no me funciona, cundo lo aplico en una prueba de aplicación que estoy haciendo y lo mando a otro teléfono que es el galaxy mini las letras se agrandan en vez de ajustarse.
1. Si %PtxtT(16) -> No ajustado (En este punto porque se pone 16 y no 10 o 25??)
.... 11. Establecer Variable %PtxtInv -> 1000/(%Ptxtdpidig) CALCULAR(Porque se divide por 1000?)
.... 12. For %ptxttam ->Items-> 10,16,20,25,150 (aca estoy poniendo solo 16 ya que es una prueba)
........ 13. Establecer Variable %PtxtT(%ptxttam) -> (%PtxtInv)*(%ptxttam)/4.492 CALCULAR (yo aca estoy poniendo 3.142)
En fin incluso en la prueba.apk en el galaxy mini se agranda la letra en vez de ajustarse.
Que puedo hacer, leí que decían que si tiene mas resolución se arruina todo.
Pues nada espero que me echen un cable. Gracias desde ya por compartir las genialidades que les salen de sus cabezas.
Muy buena tu firma Carcacía.
cace0353
08/07/16, 11:07:38
Hola a todos,
Recupero este hilo después de pelearme con el tema de ajustar el texto para dispositivos distintos con distintas resoluciones, tamaños de pantalla y densidades de pixeles sin solución satisfactoria.
La aplicación que ha motivado esta "pelea" es un programa para consultas mediante Sqlite3 de una base de datos de Plantas de un Garden que lleva mi hijo con dos tablas (una de las cuales con 2.700 registros) y captura de datos mediante el pluguin Autobarcode Scaner.
Consta de 8 escenas con texto de varios tamaños y estoy en ella desde hace varios meses. Ahora, cuando la considero terminada y depurada (solo falta documentarla con comentarios que me permitan revisarla con el paso del tiempo) comparto con vosotros como he resuelto el tema del ajuste de la altura de textos de una manera manual, tal como lo explico a continuación:
En los programas que hago casi siempre hay una escena de configuración que me aparece en la primera instalación y a la que puedo llamar también mediante un botón desde alguna otra escena.
Para ello la tarea principal empieza comprobando que la aplicación se ha configurado:
1. Si (if) %PlantesConfig ~ %*
2. Flash Texto: Espera, estableciendo las variables de inicio...
3. Realizar tarea Nombre: Plantes Config
4. Establecer variable Nombre: %AltTexte a 1
5. Realizar tarea Nombre: Ajustar Texte
6. Mostrar Escena Nombre: Config Plantes
7. Fin si (End if)
Explicación de los puntos:
3. En la tarea Plantes Config se fijan los colores y todos los valores de parámetros que luego podré cambiar en la escena de configuración: tipo de IVA y el Coeficiente de mermas (variables segun los productos), el margen comercial, los tipos de precio (motores o según tarifa), temas de colores, redondeo de los céntimos en el PVP, etc.
Finalmente se le da a la variable %PlantesConfig el valor de 1 para que no se vuelva a ejecutar la tarea a menos que se limpien los datos de la aplicación.
4. Luego se inicializa la variable %AltTexte con valor 1
5. En la tarea Ajustar Texte, que transcribo integramente a continuación, establezco los valores de altura de texto usado en mi proyecto multiplicando el valor de cada altura de texto "tipo" por el de la variable configurable manualmente %AltTexte, y afectando la operación con un operador round que hace que el resultado se redondee al entero más próximo (no están permitidos los valores decimales en la altura de texto).
Las variables se han establecido como globales para que sus valores sean visibles en la edición de las escenas (a pesar de que soy partidario irreductible del uso de variables locales, aquí he cedido por necesidad...)
Ajustar Texte (386)
A1: Establecer variable [ Nombre:%Atx12 A: round(12*%AltTexte) Calcular:Encendido Añadir:Apagado ]
A2: Establecer variable [ Nombre:%Atx14 A: round(14*%AltTexte) Calcular:Encendido Añadir:Apagado ]
A3: Establecer variable [ Nombre:%Atx16 A: round(16*%AltTexte) Calcular:Encendido Añadir:Apagado ]
A4: Establecer variable [ Nombre:%Atx18 A: round(18*%AltTexte) Calcular:Encendido Añadir:Apagado ]
A5: Establecer variable [ Nombre:%Atx20 A: round(20*%AltTexte) Calcular:Encendido Añadir:Apagado ]
A6: Establecer variable [ Nombre:%Atx22 A: round(22*%AltTexte) Calcular:Encendido Añadir:Apagado ]
A7: Establecer variable [ Nombre:%Atx24 A: round(24*%AltTexte) Calcular:Encendido Añadir:Apagado ]
A8: Establecer variable [ Nombre:%Atx28 A: round(28*%AltTexte) Calcular:Encendido Añadir:Apagado ]
A9: Establecer variable [ Nombre:%Atx56 A: round(56*%AltTexte) Calcular:Encendido Añadir:Apagado ]
Solo queda hacer que en las escenas, en lugar de poner la altura del texto como valor numérico, ponga el nombre de las variables correspondientes.
En la tarea he puesto las alturas que uso habitualmente (de 2 en 2 puntos).
6. En la Escena Config Plantes, aparte de los correspondientes cuadros de texto editables para cambiar los parámetros de inicio, he puesto uno que por defecto vale %AltTexte y que asigna en la pestaña "Texto cambiado" a la variable global %AltTexte el valor que ponga en la casilla: %new_val.
Al lado del cuadro de texto un pequeño botón con el símbolo de actualizar ejecuta la tarea Ajustar Texte y muestra de nuevo la escena. Esto permite comprobar el efecto de los cambios. El ajuste puede ser tan preciso como queramos pues podemos dar a la variable %AltTexte cualquier valor con decimales. Además siempre podemos volver al menú de configuración para ajustar este valor en el caso de que en alguna escena nos quede un texto cortado...
Además, este ajuste, aunque manual, solo hará falta hacerlo en la primera instalación y nos servirá todos nuestros Proyectos de Tasker.
Saludos a todos!
vBulletin® v3.8.1, Copyright ©2000-2026, Jelsoft Enterprises Ltd.