我正在創建一個gridView,並且我顯示的圖像的要求是,如果用戶單擊圖像,然後圖像的邊界應該出現,這是發生的,但問題是,當我點擊圖像並向下滾動時,會自動選擇一些其他圖像,當我在網格視圖中刷新圖像列表時,所選圖像變爲未選中狀態。安卓網格視圖滾動選擇圖像自動選擇圖像
public class ImageAdapter extends BaseAdapter {
Display display = getWindowManager().getDefaultDisplay();
@Override
public int getCount() {
return images.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
View view = convertView;
final int Position = position;
if (view == null) {
view = getLayoutInflater().inflate(R.layout.item_grid_image,
parent, false);
holder = new ViewHolder();
assert view != null;
holder.imageView = (ImageView) view.findViewById(R.id.image);
holder.imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
holder.imageView
.setLayoutParams(new RelativeLayout.LayoutParams(
formulas.getWidth(200), formulas.getWidth(200)));
holder.progressBar = (ProgressBar) view
.findViewById(R.id.progress);
holder.progressBar
.setLayoutParams(new RelativeLayout.LayoutParams(
formulas.getWidth(200), formulas.getWidth(200)));
view.setTag(R.id.image, holder.imageView);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
holder.imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// Log.e("", "image :"
// + images.get(position).getThumbNailUrl());
// ImageView imageView = (ImageView) v;
// int getPosition = (Integer) imageView.getTag();
if (thumbnailsselection.get(Position)) {
holder.imageView
.setBackgroundResource(R.drawable.borderonclick);
thumbnailsselection.set(Position, false);
} else {
holder.imageView
.setBackgroundResource(R.drawable.border);
thumbnailsselection.set(Position, true);
}
}
});
imageLoader.displayImage(images.get(position).getThumbNailUrl(),
holder.imageView, options,
new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
holder.progressBar.setProgress(0);
holder.progressBar.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingFailed(String imageUri, View view,
FailReason failReason) {
holder.progressBar.setVisibility(View.GONE);
}
@Override
public void onLoadingComplete(String imageUri,
View view, Bitmap loadedImage) {
holder.progressBar.setVisibility(View.GONE);
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri,
View view, int current, int total) {
holder.progressBar.setProgress(Math.round(100.0f
* current/total));
}
});
// holder.checkbox.setChecked(thumbnailsselection.get(position));
return view;
}
class ViewHolder {
ImageView imageView;
ProgressBar progressBar;
}
}
thumbnailSelection是布爾arraylist以知道哪個圖像被選中。 我在其中設置適配器的網格視圖。
showingImages = new GridView(this);
// showingImages.setColumnWidth(90);
// showingImages.setBackgroundColor(Color.parseColor("#EAEAEA"));
showingImages.setHorizontalSpacing(2);
showingImages.setVerticalSpacing(2);
showingImages.setNumColumns(4);
showingImages.setGravity(Gravity.CENTER);
// showingImages.setStretchMode(90);
showingImages.setOnScrollListener(this);