使用Kotlin语言为Android Studio中的文本设置渐变颜色
我有一个文本,我想设置一个渐变色作为它的前景。我可以用XML做吗 或者我应该在活动中这样做?我正在Android Studio中与Kotlin一起编程 文件activity_main.xml使用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())
为了将渐变设置为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)