2013-07-19 234 views
0

我有ListView,我想將當前活動的行更改爲不同的顏色。Android ListView背景顏色變化

目前我有這樣的:

rowView.setBackgroundColor(0xFF0000FF); // make blue bg 

而且它按預期工作。

然而,有一個「哲學」問題 - 因爲我使用所有的默認配色方案,我應該使用什麼顏色?藍色是一個不好的例子,因爲android方案可能是黑暗的,光線的或完全自定義的。

我記得的東西可能是反色,視覺上相似的顏色(比如20%較暗)或者可能是相同的顏色,但有一些效果。

在Android必須努力2.2+

編輯:

解決方案我在找的是更多這樣的事情:

int x = this.getResources().getColor(android.R.color.holo_blue_bright); 
listViewItem.setBackgroundColor(x); 

回答

0

如果你想有一個函數來計算顏色變暗或變亮見Brighter/Darker function。在JavaScript中,但很容易轉換爲Java

+0

謝謝,這很有用 – Nick

+0

樂意提供幫助,但是如果您認爲這很有用,感謝的最佳方式是upvote和or accept – ramaral

1

如果你知道這是一種顏色,那麼你可以嘗試

ColorDrawable buttonColor = (ColorDrawable) button.getBackground(); 

如果你使用的是Android 3.0+,你可以走出的資源ID顏色。

int colorId = buttonColor.getColor(); 

然後,請執行下列操作:

int red = Color.red(colorId); 
    int blue = Color.blue(colorId); 
    int green = Color.green(colorId); 
    double percent = 400; 
    button.setBackgroundColor(Color.rgb((int)(red * percent/100), 
     (int)(blue * percent/100),(int)(green * percent/100))); 

注意在進行顏色更高亮膚色,和一個較小的數字變暗的顏色。

+0

問題是,10%輕/黑是黑客。使用純色更好,但我不知道顏色,不知道我應該使用什麼顏色?如果我使用藍色,如果整個ListView是藍色的,這將是錯誤的。 – Nick