目录摘要代码中设置Stroke渐变代码实现如何使用摘要 每天一个UI小技巧,提高开发效率 UI开发中繁琐的drawable xml开发,不同的view背景样式一致,却因为部分设计区
每天一个UI小技巧,提高开发效率 UI开发中繁琐的drawable xml开发,不同的view背景样式一致,却因为部分设计区别,就要重新写一套新的xml drawable,写还是不写?写的越多冗余代码越多,就因为改了一点小小的高度?
class StrokeGradientLRDrawable(colors: IntArray,
radius: Float,
strokeWidth: Float) : ShapeDrawable() {
init {
// 外部矩形弧度
val outerR = floatArrayOf(radius, radius, radius, radius, radius, radius, radius, radius)
// 内部矩形与外部矩形的距离
val inset = RectF(strokeWidth, strokeWidth, strokeWidth, strokeWidth)
// 内部矩形弧度
val innerRadius = radius - strokeWidth
val innerRadii = floatArrayOf(innerRadius, innerRadius, innerRadius, innerRadius, innerRadius, innerRadius, innerRadius, innerRadius)
val rr = RoundRectShape(outerR, inset, innerRadii)
shape = rr
shaderFactory = object : ShaderFactory() {
override fun resize(width: Int, height: Int): Shader {
return LinearGradient(0f, 0f, width.toFloat(),
0f, colors, null, Shader.TileMode.CLAMP)
}
}
}
}
Drawable很简单,三个参数。
渐变的颜色数组; 圆角半径; Stroke的线条宽度
view.background = StrokeGradientLRDrawable(intArrayOf(Color.RED, Color.BLUE), 1000f, 5f)
view.background = StrokeGradientLRDrawable(intArrayOf(Color.RED, Color.BLUE), 50f, 5f)
以上就是Android UI动态设置带有Stroke渐变色背景Drawable的详细内容,更多关于Android UI Stroke渐变色背景的资料请关注编程网其它相关文章!
--结束END--
本文标题: AndroidUI动态设置带有Stroke渐变色背景Drawable
本文链接: https://lsjlt.com/news/178225.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0