我有一个ListView,我希望这些项目在按下时显示与Holo Blue不同的颜色。所以我制作了一个可绘制的选择器,效果很好。
我的颜色为FFF100
,颜色很漂亮。
但是,我认为它有点过于饱和,所以我想降低alpha,使其更像我的标签指示器,这是用图像文件完成的。它具有相同的颜色FFF100
,但不透明度为50%。
所以我将颜色改为ARGB值,使用80
(128/255)作为alpha值。所以我的颜色现在是80FFF100
。
但现在它看起来像一个奇怪的绿色!
我的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 :(得分:1)
不确定为什么它会在没有看到代码的情况下完全执行此操作,但您可以随时将ARGB颜色转换为RGB,使用:foreground * alpha + background *(1-alpha)
或拍摄快照并直接拉出颜色(这会改变您想要的颜色f7f077)。当然,如果你的背景不牢固,那么你不能这样做,但是从你的照片看来并不是这样。
答案 1 :(得分:1)
修正了它。它出现绿色的原因是因为出于某种原因,Android显示默认的按下颜色(Holo blue)和将与我的相结合。蓝色+黄色=绿色!
我通过在行的XML中取出这行来修复它:
android:background="@drawable/putio_clickable_bg"
并将此行放入我的ListView:
android:listSelector="@drawable/putio_tab_indicator"
为什么要修复它,我不知道。也许这是Android中的一个错误?
答案 2 :(得分:0)
我不知道在alpha列中使用其他数字(如'80')时会发生什么。我只使用了'00',尝试一下,因为这样可以提供具有约50%不透明度的完美色彩。似乎不使用0会改变颜色。
希望这有帮助。