Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

763
Vistas
¿Cómo establecer el degradado como color de texto y agregar un trazo alrededor en TextView Android?

Quiero establecer el degradado como color de texto y, al mismo tiempo, quiero que el texto tenga un trazo sólido a su alrededor en un TextView . Hasta ahora, lo que he logrado es que el texto solo puede mostrar el degradado o el trazo, no ambos al mismo tiempo.

Creé una clase personalizada con TextView extendido y estoy usando los siguientes métodos:

Usando esto para dibujar un trazo:

 paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(_strokeWidth); setTextColor(_strokeColor);

Lo que me da este resultado:

ingrese la descripción de la imagen aquí

Usando el siguiente código para agregar gradiente:

 Shader textShader = new LinearGradient(0f, 0f, getWidth(), getTextSize(), gradientColorsArray, null, Shader.TileMode.CLAMP); paint.setShader(textShader);

Y me da el siguiente resultado:

ingrese la descripción de la imagen aquí

El problema es cuando combino los dos métodos anteriores, el trazo se dibuja pero el color del trazo es el mismo que el degradado que estoy dando al objeto de pintura.

El siguiente es el resultado que quiero lograr. Sería genial si alguien me puede guiar sobre cómo lograr los resultados deseados.

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
4 Respuestas
Responde la pregunta

0

Entonces, después de esperar más de 4 días y mucha investigación, finalmente puedo lograr el resultado deseado.

El error que estaba cometiendo es que al dibujar un trazo en un objeto de pintura, configuro el color del trazo como textcolor . Lo que hice esta vez fue que creé un objeto LinearGradient() y se lo di a paint.shader mientras configuraba paintStyle(Paint.Style.Stroke) .

 Paint paint = this.getPaint(); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(5f); paint.setShader(new LinearGradient(0f, 0f, getTextSize(), getTextSize(), mOutlineColor, mOutlineColor, Shader.TileMode.CLAMP));

Y después de configurar el trazo en el método onDraw() de mi clase CustomTextView , llamé a super.onDraw(canvas)

Luego creo un nuevo objeto LinearGradient() para los colores degradados de la siguiente manera:

 Paint paint = this.getPaint(); paint.setStyle(Paint.Style.FILL); Shader linearShader = new LinearGradient(0f, 0f, getWidth(), getTextSize(), colors, null, Shader.TileMode.CLAMP); paint.setShader(linearShader);

Finalmente llamando a super.onDraw(canvas) nuevamente y esto le da a mi vista de texto un trazo, así como un degradado como textview .

over 4 years ago · Santiago Trujillo Denunciar

0

hola internet para todos

about 4 years ago · Manuel saravia Denunciar

0

hola a tos amigos

about 4 years ago · Manuel saravia Denunciar

0

Saludos para todos los del grupo

about 4 years ago · Manuel saravia Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda