• Companies
    • Post job
    • Our process
    • Assessments
    • Hire tech talent
    • Employer of Record
    • Sales
    • Salary Calculator
  • Candidates
    • Jobs
    • Courses and challenges
  • Pricing

0

738
Views
¿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í

about 4 years ago · Santiago Trujillo
4 answers
Answer question

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 .

about 4 years ago · Santiago Trujillo Report

0

hola internet para todos

almost 4 years ago · Manuel saravia Report

0

hola a tos amigos

almost 4 years ago · Manuel saravia Report

0

Saludos para todos los del grupo

almost 4 years ago · Manuel saravia Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!