使用Kotlin语言为Android Studio中的文本设置渐变颜色

使用Kotlin语言为Android Studio中的文本设置渐变颜色,android,xml,android-studio,kotlin,gradient,Android,Xml,Android Studio,Kotlin,Gradient,我有一个文本,我想设置一个渐变色作为它的前景。我可以用XML做吗 或者我应该在活动中这样做?我正在Android Studio中与Kotlin一起编程 文件activity_main.xml 为了将渐变设置为Textview文本颜色,必须将textshader与解析渐变颜色一起使用。您可以根据需要定制颜色 val paint = textView.paint val width = paint.measureText(textView.text.toString())

我有一个文本,我想设置一个渐变色作为它的前景。我可以用XML做吗

或者我应该在活动中这样做?我正在Android Studio中与Kotlin一起编程

文件activity_main.xml
为了将渐变设置为Textview文本颜色,必须将textshader与解析渐变颜色一起使用。您可以根据需要定制颜色

 val paint = textView.paint
        val width = paint.measureText(textView.text.toString())
        val textShader: Shader = LinearGradient(0f, 0f, width, textView.textSize, intArrayOf(
            Color.parseColor("#F97C3C"),
            Color.parseColor("#FDB54E"),
            /*Color.parseColor("#64B678"),
            Color.parseColor("#478AEA"),*/
            Color.parseColor("#8446CC")
        ), null, Shader.TileMode.REPEAT)

        textView.paint.setShader(textShader)

为了将渐变设置为Textview文本颜色,必须将textshader与解析渐变颜色一起使用。您可以根据需要定制颜色

 val paint = textView.paint
        val width = paint.measureText(textView.text.toString())
        val textShader: Shader = LinearGradient(0f, 0f, width, textView.textSize, intArrayOf(
            Color.parseColor("#F97C3C"),
            Color.parseColor("#FDB54E"),
            /*Color.parseColor("#64B678"),
            Color.parseColor("#478AEA"),*/
            Color.parseColor("#8446CC")
        ), null, Shader.TileMode.REPEAT)

        textView.paint.setShader(textShader)


在xml中,将背景设置为textview。。将android:background=FFFFFF替换为android:background=@drawable/gradientIt不起作用@Raza,它对你起作用吗?是的,我已经测试过了,它起作用了。。尝试更改渐变可绘制文件的名称。请附上完整的代码作为答案,我将尝试该代码。在xml内部,将背景设置为textview。。将android:background=FFFFFF替换为android:background=@drawable/gradientIt不起作用@Raza,它对你起作用吗?是的,我已经测试过了,它起作用了。。尝试更改渐变可绘制文件的名称。请附上您的完整代码作为答案,我将尝试该代码。谢谢@Raza,但此代码将使我的文本视图渐变背景,而我希望我的文本是渐变的。换句话说,现在我的文本是黑色的,我想让它渐变。这就是你想要的吗?就是这样。非常感谢。此代码不适用于小文本。例如,请尝试此文本的代码:Moein@RazaDo你想修改你的代码来处理小字符串吗?@RazaThank you@Raza,但这段代码会使我的文本视图背景渐变,而我希望我的文本是渐变的。换句话说,现在我的文本是黑色的,我想让它渐变。这就是你想要的吗?就是这样。非常感谢。此代码不适用于小文本。例如,请尝试此文本的代码:Moein@RazaDo是否要修改代码以处理小字符串?@Raza
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity


class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

    }
}
 val paint = textView.paint
        val width = paint.measureText(textView.text.toString())
        val textShader: Shader = LinearGradient(0f, 0f, width, textView.textSize, intArrayOf(
            Color.parseColor("#F97C3C"),
            Color.parseColor("#FDB54E"),
            /*Color.parseColor("#64B678"),
            Color.parseColor("#478AEA"),*/
            Color.parseColor("#8446CC")
        ), null, Shader.TileMode.REPEAT)

        textView.paint.setShader(textShader)