我正在使用ListView
和我自己的BaseAdapter
来呈现项目列表。可以高举一个项目。当我这样做时,我在BaseAdapter
中设置背景,如下所示:
if (position == selectedItem) {
convertView.setBackgroundResource(R.color.mylightcyan);
} else {
convertView.setBackgroundResource(0);
}
这很有效,除了View
内的convertView
(有一些按钮来编辑项目)似乎有点透明,即使getAlpha()
返回{ {1}}。
当我明确设置包含1.0
的背景时,它会渲染我想要的锄头。如何“删除”这种类似alpha的行为?
我得到了什么:
我想要的:
答案 0 :(得分:0)
这是因为android使用的* .9.png文件作为按钮的默认资源,它们具有透明性(按钮本身是半透明的)。因此,将alpha设置为0只会使其与原始图像本身一样不透明。
一种方式(尽管是tedius)将在列表中制作每种样式(按钮,开关等)的自定义drawables / xmls,并将其包含在项目中。
相反,您可以做一些hacky:将您的BaseAdapter的每个元素(即按钮,开关等)包裹在线性布局中,并将这些线性布局的背景设置为列表中的相同背景。这样,您的按钮后面会有一个不透明的背景,会掩盖高光颜色。