|
||
|
![]() |
![]() |
Tasker Para hablar de todo lo relacionado con la aplicación tasker |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Cómo adaptar el tamaño del texto en una apk en función de la resolución de cada móvil
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...7&postcount=12 Última edición por carcacia Día 23/04/14 a las 17:48:44. |
|
#2
|
||||
|
||||
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.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
Gracias de parte de: | ||
#3
|
||||
|
||||
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?
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
Gracias de parte de: | ||
#4
|
||||
|
||||
Gracias por responder y por intentar buscar soluciones, yo seguiré trasteando a ver si encuentro algo
|
#5
|
||||
|
||||
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? ![]() 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. |
#6
|
||||
|
||||
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... |
Los siguientes 2 usuarios han agradecido a carcacia su comentario: | ||
#7
|
||||
|
||||
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: Screenshot_2014-02-08-16-18-54.png 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: Screenshot_2014-02-08-16-20-27.png 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. Screenshot_2014-02-08-16-18-44.png 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. |
#8
|
||||
|
||||
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.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
#9
|
||||
|
||||
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.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
#10
|
||||
|
||||
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. |
#11
|
||||
|
||||
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
#12
|
||||
|
||||
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 Última edición por carcacia Día 09/02/14 a las 11:41:59. |
Los siguientes 2 usuarios han agradecido a carcacia su comentario: | ||
#13
|
||||
|
||||
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. ![]() Y gracias por compartirlo ![]() 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.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
#14
|
||||
|
||||
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. 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.
![]() Un saludo
__________________
Firmado: Carcacía
El tasker ha sustituido al Candy Crush en mis ratos libres |
#15
|
||||
|
||||
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.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
#16
|
||||
|
||||
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.
__________________
Firmado: Carcacía
El tasker ha sustituido al Candy Crush en mis ratos libres |
Gracias de parte de: | ||
#17
|
||||
|
||||
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.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
#18
|
||||
|
||||
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 )?? ![]() 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.
__________________ ![]()
__________________
Firmado: Carcacía
El tasker ha sustituido al Candy Crush en mis ratos libres |
#19
|
||||
|
||||
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?
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
|
#20
|
||||
|
||||
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.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
![]() |
![]() |
||||||
|