如何在GridView中的一个项目上设置setAlpha()?

时间:2014-08-21 05:56:05

标签: android gridview wear-os alpha-transparency

是否可以将GridView中的单个项目设置为透明?

我有一个带有ImageAdapter的GridView,并希望将项目设置在中心而没有透明度,其他项目则设置为setAlpha()。

gridView.setOnScrollListener(new AbsListView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {

    }

    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

         Log.v("firstVisibleItem", firstVisibleItem+"");
         Log.v("visibleItemCount", visibleItemCount+"");
         Log.v("totalItemCount", totalItemCount+"");                            

    }
}

这应该在OnScrollListener中完成。

修改

这是我在ImageAdapter类中的getView

public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    if (convertView == null) { 
        imageView = new ImageView(mContext);
        imageView.setLabelFor(position);
        imageView.setLayoutParams(new GridView.LayoutParams(100,100));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(8, 8, 8, 8); //left, top, right, bottom
    } else {
        imageView = (ImageView) convertView;
    }

    imageView.setImageResource(mThumbIds[position]);

    return imageView;
}

    public ArrayList<View> getListView() {
    return listView;
}

我希望将imageView存储在一个数组中并将其传递给我的主要活动。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我可能会这样做:

  1. 在某种数组中保留对我的适配器中充气的每个视图的引用。

  2. 控制哪个视图(此数组中的哪个索引)在特定时刻位于中心(基于高度,宽度,列数,行数)

  3. 为数组中的所有视图设置一个正确的alpha,而不是标识为中心的视图(步骤2)。