如何在gridview中设置图像的邮件作为
我有gridview用于显示图像的数量,就像android手机中的一个画廊。如何在gridview中设置图像的邮件作为
但是,当我向下滚动到gridview的下部显示图像的位置正在改变。
我的自定义适配器..
class MyCustomArrayAdapter extends ArrayAdapter<ModelBean> {
private final Activity context;
private final List<ModelBean> listDownload;
public MyCustomArrayAdapter(Activity context, List<ModelBean> list) {
super(context, R.layout.gridview_layout, list);
this.context = context;
this.listDownload = list;
}
static class ViewHolder {
protected ImageView imageView;
protected ProgressBar pb;
protected ModelBean mb;
}
@SuppressLint("InflateParams")
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
if (convertView == null)
{
LayoutInflater inflator = context.getLayoutInflater();
convertView = inflator.inflate(R.layout.gridview_layout, null);
holder = new ViewHolder();
holder.imageView = (ImageView) convertView.findViewById(R.id.imageView);
holder.imageView.setVisibility(View.GONE);
holder.pb = (ProgressBar) convertView.findViewById(R.id.progressBar1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.imageView.setTag(listDownload.get(position).getImage());
holder.imageView.setId(position);
PbAndImageBean pb_and_imageBean = new PbAndImageBean();
pb_and_imageBean.setImg(holder.imageView);
pb_and_imageBean.setPb(holder.pb);
pb_and_imageBean.setModelBean(listDownload.get(position));
new DownloadImageAsyncTask(context).execute(pb_and_imageBean);
holder.imageView.setOnClickListener(new OnImageClickListener(position));
return convertView;
}
class OnImageClickListener implements OnClickListener {
int _postion;
// constructor
public OnImageClickListener(int position) {
this._postion = position;
}
@Override
public void onClick(View v) {
// on selecting grid view image
// launch full screen activity
Intent i = new Intent(context, FullScreenViewActivity.class);
i.putExtra("position", _postion);
context.startActivity(i);
}
}
}
我已经使用了延迟加载的概念从服务器获取图像, 所以单个图像获取的单次下载。 但从逻辑上说,它不会影响我的问题。
我想要做的是,当图像下载到任何位置时,它应该锁定在特定的位置,将解决我的问题。
尝试像这个 -
class MyCustomArrayAdapter extends ArrayAdapter<ModelBean> {
private final Activity context;
private final List<ModelBean> listDownload;
public MyCustomArrayAdapter(Activity context, List<ModelBean> list) {
super(context, R.layout.gridview_layout, list);
this.context = context;
this.listDownload = list;
}
@SuppressLint("InflateParams")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflator = context.getLayoutInflater();
convertView = inflator.inflate(R.layout.gridview_layout, null);
ImageView imageView = (ImageView) convertView
.findViewById(R.id.imageView);
imageView.setVisibility(View.GONE);
ProgressBar pb = (ProgressBar) convertView
.findViewById(R.id.progressBar1);
imageView.setTag(listDownload.get(position).getImage());
imageView.setId(position);
PbAndImageBean pb_and_imageBean = new PbAndImageBean();
pb_and_imageBean.setImg(imageView);
pb_and_imageBean.setPb(pb);
pb_and_imageBean.setModelBean(listDownload.get(position));
new DownloadImageAsyncTask(context).execute(pb_and_imageBean);
imageView.setOnClickListener(new OnImageClickListener(position));
return convertView;
}
class OnImageClickListener implements OnClickListener {
int _postion;
// constructor
public OnImageClickListener(int position) {
this._postion = position;
}
@Override
public void onClick(View v) {
// on selecting grid view image
// launch full screen activity
Intent i = new Intent(context, FullScreenViewActivity.class);
i.putExtra("position", _postion);
context.startActivity(i);
}
}
}
后滚动它消失下载的图像... – 2014-09-05 10:07:51
非常接近解决,但... ... ..当我向下滚动它消失图像...请帮助... – 2014-09-05 10:29:48
@Priyanka你在哪里? – Piyush 2015-10-20 11:13:58
更改这一个。
View view = null;
ViewHolder holder;
if (convertView == null) {
LayoutInflater inflator = context.getLayoutInflater();
holder = new ViewHolder();
view = inflator.inflate(R.layout.gridview_layout, null);
final ViewHolder viewHolder = new ViewHolder();
viewHolder.imageView = (ImageView) view.findViewById(R.id.imageView);
viewHolder.imageView.setVisibility(View.GONE);
viewHolder.pb = (ProgressBar) view.findViewById(R.id.progressBar1);
view.setTag(viewHolder);
} else {
holder = (ViewHolder) view.getTag();
}
它是什么改变? – 2014-09-03 06:31:14
你还没有看到?在你的代码中,当你的视图为空时,你没有为视图持有者创建对象,所以每当你滚动时你的视图被回收 – Piyush 2014-09-03 06:33:09
哦!好的......希望它能工作...... – 2014-09-03 06:37:20
最后..通用图像加载器解决我的问题...谢谢大家.... – 2014-09-10 12:03:29