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
}
渐变TextView
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 背景 在日常开发中经常会遇到各种渐变的TextView,为了加快开发进度就记录下方便以后直接使用。 效果图 实现 ...
- 一、在onLayout时去改变颜色 二、通过自定义onDraw去实现渐变 三、重点代码 通过Paint的Shade...
- /** * 设置textview 的颜色渐变 * @param text */ public void setTe...