渐变TextView

class MTGradientTextView @JvmOverloads constructor(
    context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = android.R.attr.textViewStyle
) : AppCompatTextView(context, attrs, defStyleAttr) {

    private var shader: Shader? = null

    override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
        super.onSizeChanged(w, h, oldw, oldh)
//            var startColor = 0xFF00FF00.toInt()
//            var endColor = 0xFF00FF00.toInt()
        var startColor = 0xFFFFFFFF.toInt()
        var endColor = 0xFFCEEDFF.toInt()
        // 定义渐变的起始点和结束点(从顶部到底部)
        shader = LinearGradient(
            0f, 0f, 0f, height.toFloat(), intArrayOf(
                startColor, // 渐变开始颜色
                /* 您可以添加更多颜色以创建复杂的渐变 */
                // 例如:Color.RED, Color.YELLOW, Color.GREEN
                /* 这里为了简单,只使用两个颜色 */
                endColor // 渐变结束颜色(绿色)
            ), null, Shader.TileMode.CLAMP
        )


        // 定义渐变的起始点和结束点(从左上角到右下角)
//        shader = LinearGradient(
//            0f, 0f, w.toFloat(), h.toFloat(), // 起点 (左上) 到终点 (右下)
//            intArrayOf(
//                startColor, // 渐变开始颜色
//                endColor    // 渐变结束颜色
//            ),
//            null,
//            Shader.TileMode.CLAMP
//        )


        paint.shader = shader
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容