[譯] Android 實現顏色漸變的一個小 tip

簡評:TL;DR: 若是要實現某個顏色到透明的漸變時,記得不要改動顏色的 RGB 值。android

Tip: 若是你想要建立從某個顏色到透明的漸變(gradient)背景,那就要當心使用 @android:color/transparent 了。ide

由於當 Android 在繪製漸變(gradient)時,須要指定兩種顏色表明漸變部分的兩邊(startColor - centerColor, centerColor - endColor, startColor - endColor)。spa

Android 將會計算顏色的四個組成部分(A, R, G, B)的差值。好比,咱們想實現下面兩個顏色的漸變:3d


在漸變過程的特定階段的顏色值,能夠表示爲:

當使用 @android:color/transparent 時,要記住雖然其看起來確實是透明的(即 A = #00),但也有本身的 RGB 值。若是你看過 android.graphics 中的 Color 類,你會發現 Color.TRANSPARENT 等於 0(#00000000)也就是一個徹底透明的黑色。cdn

下面來看一個例子,咱們定義以下的一個 gradient:
blog

其顯示效果是這樣的:
ip

是否是感受怪怪的。由於咱們實際上是將一個 #FF27AE60 的綠色漸變到了一個徹底透明的黑色。
開發

所以「當咱們要實現某個顏色到透明的漸變時,不要改動顏色的 RGB 值」。
所以,上面的例子應該改爲這樣(只變更 Alpha 值):
get


顯示效果:
顯示效果
顯示效果

漸變過程
漸變過程


知乎專欄:極光日報it

原文連接:Android Dev Tip #3

極光日報,極光開發者 的 Side Project,天天導讀三篇國外技術類文章,歡迎投稿和關注。

相關文章
相關標籤/搜索