在Android的ListView中设置透明度alpha。

4

嗨,我想给我的列表视图设置一些透明度,我已经看到了一些这方面的示例,但它们都是完全透明的。

就像这个话题:

如Jacky所提到的,为列表视图设置属性即可完成任务。

android:background="#00000000"
android:cacheColorHint="#00000000"

但是在我的情况下,我只想让它半透明,类似于alpha 50之类的东西。

我的目标是让用户可以通过listview看到UI的背景,同时也能透过listview看到一点透明度的背景。

我该怎么做呢?

谢谢。


1
请注意,Alpha透明度是一项昂贵的操作,因为它涉及从内存中读取颜色并混合它们,您应该考虑在性能较差的设备上禁用Alpha。 - Lie Ryan
3个回答

12

如果我没记错的话,#00000000 的前两个数字是用来表示透明度的。

例如 #80XXXXXX 表示50%的透明度。

更详细的解释可以参考颜色状态列表资源


我在这里实现了我的目标,但问题是当我滚动列表时,它会变暗,可能是因为Android在加载视图之前将背景设置为黑色。我该如何处理? - user569873
1
发布另一个带有来源的问题。 - Kiril Kirilov
已经找出来了,只需要设置这个:android:cacheColorHint="#00000000" - user569873

5
您可以通过编程方式设置UI元素的透明度。
yourUIElement.setAlpha(0.5)使其50%透明。
setAlpha方法接受0到1之间的值。
0:完全透明
1:完全不透明。

3

颜色使用ARGB颜色空间表示,因此#336699CC可分解为:

0x33 透明度 0x66 红色分量 0x99 绿色分量 0xcc 蓝色分量


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接