0

我有一个 Gridview 并使用扩展的自定义适配器填充它BaseAdapter

public class ImageAdapter extends BaseAdapter {
...
}

我有这些方法被覆盖以禁用几个瓷砖

@Override
public boolean areAllItemsEnabled() {
    return false;
}

@Override
public boolean isEnabled(int position) {
    if (position == 1 || position == 2) {
        return false;
    }
    else
    {
        return true;
    }
}

因此它禁用了对位置 1 和 2 的图块的点击。

现在,我对 android 开发还很陌生,我想知道有什么好方法可以让瓷砖变灰。我可以指定特定于禁用瓷砖的样式 xml 吗?

4

1 回答 1

1

我试着自己把它们变灰。但我开始意识到,如果你只使用 alpha 让它们看起来好像它们不完全存在,它看起来会更好。我认为这看起来更好,因为视图看起来更像那个背景,如果背景是灰色的,它看起来会变灰,如果它是其他颜色甚至是图片,效果看起来更平滑。但那是主观的。

在您的获取视图中执行类似的操作

if (isEnabled(position)) {
  view.setAlpha(1f);
} else {
  view.setAlpha(0.45f);
}

如果您坚持使用灰色,请将视图背景颜色设置为灰色,因为您可以通过视图看到背景颜色,所以它会显得略带灰色。

于 2013-09-19T22:03:08.467 回答