【HarmonyOS NEXT】一波三折之解決Rect元件設定顏色漸變顯示異常

Mayism123發表於2024-03-21

【關鍵字】

HarmonyOS NEXT、Rect元件、顏色漸變

1、寫在前面

今天在使用Rect元件時,想給它設定一個顏色漸變的效果,沒想到真的是一波三折,一起來看一下實現這個簡單效果一路上經歷的艱辛吧。首先,先來了解一下繪製元件中的Rect元件,它是用來實現矩形繪製的元件,API文件如下:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-drawing-components-rect-0000001821000929

在屬性描述中看到該元件支援通用屬性,在通用屬性中可以找到顏色漸變這一屬性,API文件如下:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-universal-attributes-gradient-color-0000001774280858

結合上面的文件,很快便寫出瞭如下用來實現Rect元件顏色漸變的程式碼:

cke_436.png

結果卻是黑色的,沒有達到想要的效果:

cke_1157.png

這是怎麼回事呢?

2、解決方案

在經過一番思考之後,想到了之前在給Button按鈕設定顏色漸變的背景圖片時也遇到了未生效的問題,有需要的可以跳過去看一下那篇文章,地址我放在下面了:

https://developer.huawei.com/consumer/cn/forum/topic/0202142274361099019?fid=0102683795438680754

於是乎便猜測可能是同一類問題,需要先設定背景色為透明色,結合Rect元件的相關屬性,所以決定透過給fill設定填充區域為透明色來試一下,因此有了下面的程式碼:

cke_1897.png

然後發現確實可以實現顏色漸變了,效果如下:

cke_4500.png

到這裡顏色漸變的問題就已經解決了,為了更加美觀,決定給它設定一個圓角吧,所以又給Rect元件新增了一個radius屬性,程式碼如下:

cke_6620.png

不出意外的話就要出意外了,哼哼圓角沒有生效。

又經過一番思考和嘗試,發現使用borderRadius屬性可以生效,因此就有了下面的程式碼:

cke_9093.png

所以最終的實現效果如下:

cke_11678.png

以上就是這個小問題的整個過程啦,有需要的可以參考。

相關文章