Adapter中ViewHolder用法

private class MyGridViewAdapter extends BaseAdapter {
List<CommonFriendInfoDetailData> listData = new ArrayList<CommonFriendInfoDetailData>();


private MyGridViewAdapter(List<CommonFriendInfoDetailData> listData) {
super();
this.listData = listData;
}


public int getCount() {
return listData.size();
}


public Object getItem(int position) {
return listData.get(position);
}


public long getItemId(int position) {
return position;
}


public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
// int padding = (int)
// TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5,
// .getDisplayMetrics());
if (convertView == null) {
convertView = LayoutInflater.from(PlatformAlbumDetailActivity.this)
.inflate(R.layout.common_image, null);
holder = new ViewHolder();
holder.photo = (ImageView) convertView.findViewById(R.id.common_detail_grid_item_image);
holder.select = (ImageView) convertView.findViewById(R.id.common_detail_grid_item_select);
// LayoutParams params = new
// LayoutParams(LayoutParams.WRAP_CONTENT,
// LayoutParams.WRAP_CONTENT);
// params.width = (Constants.SCREEN_WIDTH - padding) / 3;
// params.height = params.width;
// holder.photo.setLayoutParams(params);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
resetHolder(holder);
}


if (!listData.isEmpty() && listData.size() != 0) {
try {


ImageLoader.getInstance().displayImage(
ImageUtils.getOldWholeUrl(listData.get(position).getImage()), holder.photo,
ImageLoaderConfig.initDisplayOptions(Constants.SCREEN_WIDTH), new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
}


@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
// TODO Auto-generated method stub


ImageLoader.getInstance().displayImage(
ImageUtils.getWholeUrl(listData.get(position).getImage()), holder.photo,
ImageLoaderConfig.initDisplayOptions(Constants.SCREEN_WIDTH));
CommonUtils.L(TAG, "failereason===" + failReason.getType());
}


@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
}


@Override
public void onLoadingCancelled(String imageUri, View view) {
}
});
} catch (Exception e) {
CommonUtils.L(TAG, "OOM异常,已手动清除缓存");
System.gc();
}
}
if (isSelectMode) {
if (mSelect.contains(String.valueOf(position))) {
holder.select.setVisibility(View.VISIBLE);
} else {
holder.select.setVisibility(View.GONE);
}
}
return convertView;
}


class ViewHolder {
ImageView photo;
ImageView select;
}


void resetHolder(ViewHolder holder) {
holder.photo.setImageBitmap(null);
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值