簡評: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,天天導讀三篇國外技術類文章,歡迎投稿和關注。