Foro de elhacker.net

Programación => Java => Mensaje iniciado por: TickTack en 19 Febrero 2019, 15:42 pm



Título: Android - Dibujar: texto
Publicado por: TickTack en 19 Febrero 2019, 15:42 pm
Hola a todos,

quería preguntarles que significa este código:

Código:
Paint pincel1 = new Paint();
Typeface tf = Typeface.create(Typeface.SERIF, Typeface.ITALIC);
pincel1.setTypeface(tf);
tf = Typeface.create(Typeface.SERIF, Typeface.ITALIC
                    | Typeface.BOLD);
pincel1.setTypeface(tf);

Osea: El pincel tiene dos tipos de letras al mismo tiempo? Si es así... cómo es eso posible?
Y: Al estar separado (en la segunda creación del Typeface) el segundo parámetro por otro parámetro mediante un |... quiere decir eso que aleatoriamente se eligira un Typeface?

Gracias y saludos


Título: Re: Android - Dibujar: texto
Publicado por: BloodSharp en 19 Febrero 2019, 17:09 pm
Osea: El pincel tiene dos tipos de letras al mismo tiempo? Si es así... cómo es eso posible?
No, no puede manejar 2 fuentes tipográficas al mismo tiempo, de hecho en la segunda asignación del "Manejador" paint esta la sobre-escribe...

Y: Al estar separado (en la segunda creación del Typeface) el segundo parámetro por otro parámetro mediante un |... quiere decir eso que aleatoriamente se eligira un Typeface?

No, quiere decir que la fuente tendrá ambas propiedades negrita e itálica al mismo tiempo.


B#


Título: Re: Android - Dibujar: texto
Publicado por: TickTack en 19 Febrero 2019, 18:40 pm
Hola BloodSharp,

muchas gracias por tu respuesta.

Pero... claro... que estupidez de mi parte haber hecho esto pregunta. Bold significa negrita e Italic significa cursiva. Y yo creí que se trataba de fuentes....


Gracias y saludos


Título: Re: Android - Dibujar: texto
Publicado por: TickTack en 19 Febrero 2019, 18:57 pm
Hola BloodSharp de nuevo,

se me acaba de ocurrir otra pregunta: cómo procesara el método create de la clase Typeface el segundo parámetro si se le envía dos propiedades separados por un |? No podrá procesar solo una propiedad?


Gracias y saludos


Título: Re: Android - Dibujar: texto
Publicado por: BloodSharp en 19 Febrero 2019, 19:01 pm
cómo procesara el método create de la clase Typeface el segundo parámetro si se le envía dos propiedades separados por un |? No podrá procesar solo una propiedad?

Puede verificar cada propiedad con operaciones "and"...


B#


Título: Re: Android - Dibujar: texto
Publicado por: TickTack en 19 Febrero 2019, 19:57 pm
Hola BloodSharp,

Citar
Puede verificar cada propiedad con operaciones "and"...

Y cómo la hace?
Cómo sabe cuantas propiedades se envió en el segundo parámetro?


Gracias y saludos


Título: Re: Android - Dibujar: texto
Publicado por: Serapis en 20 Febrero 2019, 15:28 pm
Parece mentira que a esta altura, no sepas el significado de 'expresión'.

Código:
x = 5
x = (x + 5)
x = ((x + 5) * b)
x = ((x + 5) + (b and 1))

Todo son expresiones, hay una única asignación, pero es la última, previamente debe resolverse cada operación de la expresión, solo entonces se hace la asignación final.
En una función, un parámetro es lo mismo que en una asignación... si el parámetro fuera x, da lo msimo hacer:
Código:
x = ((x + 5) + (b and 1))
suma = sumar(20, x)

Que hacer:
Código:
suma = Sumar(20, ((x + 5) + (b and 1)))

El segundo parámetro es una expresión, cualquier variable por sí misma también es una expresión...Las formas típicas en que varias constantes se aúnan es porque cada constante típicamente afecta un solo bit (o más)
un sencillo ejemplo con las características d eun texto:
Código:
enumeracion FormatoTexto
    FORMATO_NEGRITA = 1       // 00000001
    FORMATO_INCLINADO = 2    // 00000010
    FORMATO_SUBRAYADO = 4  // 00000100
    FORMATO_TACHADO = 8     // 00001000
    FORMATO_COLOR = 16      // 00010000
    // ...
fin enumeracion

string texto = "Lindo pulgoso"
entero lineaX = 23
FormatoTexto ft = FORMATO_NEGRITA or FORMATO_SUBRAYADO  // 1 or 4 = 5

Escribir(texto, lineaX, ft)

En este otro ejemplo, esta llamada es prácticamente equivalente a la anterior... vale igualmente no poner variables, sino los valores constantes...
La variación rea a tener en cuenta es tan solo que debe tenerse en cuenta que en caso de que sean parámetros por referencia, se pierden valores que se dieren de vuelta. Y por tanto si se precisan tener de vuelta valores cambiados, deben pasarse variables y no los valores (constantes)...
Código:
Escribir("Lindo pulgoso", 23, FORMATO_NEGRITA or FORMATO_SUBRAYADO )




Título: Re: Android - Dibujar: texto
Publicado por: TickTack en 22 Febrero 2019, 13:22 pm
Hola NEBIRE,

todo esto es muy guay. Muchas gracias por tu explicación. Especialmente, por esta frase, que para mi era la frase clave:

Citar
Las formas típicas en que varias constantes se aúnan es porque cada constante típicamente afecta un solo bit (o más)


Gracias y saludos