2012-07-28 44 views
0

我有一個ListView,並且我希望這些項目在按下時顯示與Holo Blue不同的顏色。所以我做了一個可選的drawable,它效果很好。當我給他們一個alpha值時,我的顏色越來越混亂

我的顏色是FFF100,一個不錯的黃色。

但是,我認爲它有點過飽和,所以我想降低阿爾法,使它更像我的選項卡指標,這是用圖像文件完成的。它具有相同的顏色,FFF100,但具有50%的不透明度。

所以我將我的顏色改爲ARGB值,使用80(128/255)作爲alpha值。所以我的顏色現在是80FFF100

但現在它看起來像一個奇怪的綠色! Screenshot

而且我colors.xml:

<resources> 
    <color name="putio_accent">#FFF200</color> **This is the standard yellow color. Using this works fine, but it's too saturated, like I said before. 
    <color name="putio_accent_selected">#80FFF100</color> **This should be the same, but with 50% alpha.. 
</resources> 

這究竟是爲什麼?

+0

你可以顯示你用來設置顏色的代碼或XML嗎? – Eric 2012-07-28 02:32:24

+0

更新的原始問題。 – 2012-07-28 02:38:31

+0

做了個發現!當添加一個alpha值時,它也是繪製Holo Blue,並將其與我的黃色相結合。這就是爲什麼它是綠色的。藍+黃=綠,呃!那爲什麼它顯示藍色? – 2012-07-28 02:43:42

回答

0

我不知道在alpha列中使用其他數字(如'80')時會發生什麼。我只使用了'00',試試看,因爲這給了一個完美的顏色與約50%的不透明度。看來不使用0會改變顏色。

希望這會有所幫助。

1

不知道它爲什麼這樣做,正是沒有看到代碼,但你總是可以只轉換你的ARGB顏色爲RGB,使用這樣的:前景*阿爾法+背景*(1-α)

或者拍攝快照和直接抽出顏色(這會改變你想要的顏色f7f077)。當然,如果你的背景不穩定,那麼你不能這樣做,但從你的照片來看,似乎並非如此。

1

修正了它。它顯示綠色的原因是因爲某些原因,Android顯示默認的按下顏色(全綵藍色)和結合它與我的。藍+黃=綠!

我固定它,採取了這一行,我行的XML:

android:background="@drawable/putio_clickable_bg" 

,並把此行到我的ListView:

android:listSelector="@drawable/putio_tab_indicator" 

爲什麼這個修復它,我不知道。也許這是Android的錯誤?

+2

我猜'ListView'可能有選擇器背後的選定項目。所以,你會看到它的背景+所選項目的背景。我認爲這將是設計。很高興你找到了解決方案! – Eric 2012-07-28 03:01:06

+0

似乎合乎邏輯。它也解釋了爲什麼當我將'background'行從行的XML中取出,並創建了'listSelector =#00000000'時,什麼都沒有顯示出來。謝謝! – 2012-07-28 03:02:03