2

我有一个完美的画廊,除了只有第一个元素以完整的 alpha 显示。

我将 Gallery 的样式设置为 style="android:galleryItemBackground",并且还设置了 android:unselectedAlpha="0.75"。这是可行的,因为第一个元素显示为不透明,而第二个元素似乎褪色了一些。

问题是,当我滚动画廊时,这些项目永远不会褪色。它们都是 alpha=0.75,即使它们是选定的项目。这些项目确实设置了 OnItemClickListener,并且此侦听器工作正常。

我无法找到如何让这个工作的答案,所以我想我会在这里问。

[编辑]我还尝试设置一个 OnItemSelectedListener 并手动将 View 的 alpha 设置为 1,如果 position = selectedPosition 在适配器的 getView 中。没运气。

4

1 回答 1

1

在其每个子视图上添加背景

这是一个示例代码

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = null;

    if (convertView == null) {
        view = mInflater.inflate(R.layout.some_layout, parent, false);
    } else {
        view = convertView;
    }

    // have to set background to make selection alpha works
    view.setBackgroundColor(0x22ffffff);


    return view;
}

希望能帮助到你

于 2012-07-25T00:03:37.533 回答