是否可以将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存储在一个数组中并将其传递给我的主要活动。 有什么建议吗?
答案 0 :(得分:0)
我可能会这样做:
在某种数组中保留对我的适配器中充气的每个视图的引用。
控制哪个视图(此数组中的哪个索引)在特定时刻位于中心(基于高度,宽度,列数,行数)
为数组中的所有视图设置一个正确的alpha,而不是标识为中心的视图(步骤2)。