Android UI動(dòng)態(tài)設(shè)置帶有Stroke漸變色背景Drawable
摘要
每天一個(gè)UI小技巧,提高開發(fā)效率 UI開發(fā)中繁瑣的drawable xml開發(fā),不同的view背景樣式一致,卻因?yàn)椴糠衷O(shè)計(jì)區(qū)別,就要重新寫一套新的xml drawable,寫還是不寫?寫的越多冗余代碼越多,就因?yàn)楦牧艘稽c(diǎn)小小的高度?
代碼中設(shè)置Stroke漸變
- 實(shí)際效果如下


代碼實(shí)現(xiàn)
class StrokeGradientLRDrawable(colors: IntArray,
radius: Float,
strokeWidth: Float) : ShapeDrawable() {
init {
// 外部矩形弧度
val outerR = floatArrayOf(radius, radius, radius, radius, radius, radius, radius, radius)
// 內(nèi)部矩形與外部矩形的距離
val inset = RectF(strokeWidth, strokeWidth, strokeWidth, strokeWidth)
// 內(nèi)部矩形弧度
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很簡(jiǎn)單,三個(gè)參數(shù)。
漸變的顏色數(shù)組; 圓角半徑; Stroke的線條寬度
如何使用
- 如果達(dá)到圖一的效果,即半徑恰好為高度的一半,只需要把radius設(shè)置為一個(gè)更大的值即可。給個(gè)1000就行了
view.background = StrokeGradientLRDrawable(intArrayOf(Color.RED, Color.BLUE), 1000f, 5f)
- 普通的圓角就設(shè)置值就好了
view.background = StrokeGradientLRDrawable(intArrayOf(Color.RED, Color.BLUE), 50f, 5f)
以上就是Android UI動(dòng)態(tài)設(shè)置帶有Stroke漸變色背景Drawable的詳細(xì)內(nèi)容,更多關(guān)于Android UI Stroke漸變色背景的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Flutter系統(tǒng)網(wǎng)絡(luò)圖片加載流程解析
這篇文章主要介紹了Flutter系統(tǒng)網(wǎng)絡(luò)圖片加載流程,從構(gòu)造函數(shù)開始說(shuō)起,我們以最簡(jiǎn)單的調(diào)用方式舉例,當(dāng)我們使用Image.network(imageUrl)這種方式來(lái)顯示圖片時(shí),Image組件內(nèi)部image屬性就會(huì)被賦值NetworkImage,具體操作步驟跟隨小編一起看看吧2022-05-05
Android中實(shí)現(xiàn)布局背景模糊化處理的方法
這篇文章主要介紹了Android中實(shí)現(xiàn)布局背景模糊化處理的方法,需要的朋友可以參考下2015-04-04
Android手機(jī)拍照或選取圖庫(kù)圖片作為頭像
這篇文章主要介紹了Android手機(jī)拍照或選取圖庫(kù)圖片作為頭像的相關(guān)資料,需要的朋友可以參考下2015-06-06
Android 懸浮窗權(quán)限各機(jī)型各系統(tǒng)適配大全(總結(jié))
這篇文章主要介紹了Android 懸浮窗權(quán)限各機(jī)型各系統(tǒng)適配大全(總結(jié)),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
Android輔助功能實(shí)現(xiàn)自動(dòng)搶紅包(附源碼)
本篇文章主要介紹了Android輔助功能實(shí)現(xiàn)自動(dòng)搶紅包(附源碼),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
Android 進(jìn)入設(shè)備后臺(tái)data文件夾的辦法
Android 進(jìn)入設(shè)備后臺(tái)data文件夾的辦法,需要的朋友可以參考一下2013-05-05

