2013-11-15 33 views
0

我使用圖形畫布,顏色和繪畫類在Android中繪製矩形。如果我有矩陣存儲在每個顏色的數組中,我將如何從一端到另一端使用顏色漸變?我一直在嘗試使用Color.red(colorInt)等修改rgb值,但我得到了一些奇怪的結果。我將如何漸變幾個單獨繪製的矩形的顏色?

編輯:每個矩形本身沒有梯度。我需要每個人都是一個純色。 我試着將每個顏色分量乘以一個基於矩形在數組中的位置的權重,但它是無效的。

這是我試過的一些代碼。

if(lt != null && rt != null) 
{ 
    int r = (int) ((Color.red(lt.getColor()) * (1.0 - weight)) - (Color.red(rt.getColor()) * weight)); 
    int g = (int) ((Color.green(lt.getColor()) * (1.0 - weight)) - (Color.green(rt.getColor()) * weight)); 
    int b = (int) ((Color.blue(lt.getColor()) * (1.0 - weight)) - (Color.blue(rt.getColor()) * weight)); 

    color = Color.argb(ALPHA, r, g, b); 
} 
+0

使用的LinearGradient – pskink

+0

你能換個角度來說,你可以用任何圖片來解釋你的問題。我不明白。 – amalBit

回答

0

這可能不是一個確切的回答你的問題,但可以幫助你梯度設置爲一個觀點:

View yourView = findViewById(R.id.mainlayout); 

GradientDrawable gd = new GradientDrawable(
     GradientDrawable.Orientation.TOP_BOTTOM, 
     new int[] {0xFF616261,0xFF131313}); 
gd.setCornerRadius(0f); 

yourView .setBackgroundDrawable(gd); 

欲瞭解更多信息有關GradientDrawable.

+0

我不希望每個矩形都有一個漸變,但是每個矩形的顏色可以在數組中的矩形之間進行漸變。 我很感謝你試圖幫助 – CourtJester5