Java GridView的滚动速度非常慢
这是我的GridView的自定义适配器类。我曾经试图通过调用布局充气器来优化网格滚动的速度,还使用了视图保持器,但现在滚动速度非常慢Java GridView的滚动速度非常慢,java,android,android-gridview,layout-inflater,Java,Android,Android Gridview,Layout Inflater,这是我的GridView的自定义适配器类。我曾经试图通过调用布局充气器来优化网格滚动的速度,还使用了视图保持器,但现在滚动速度非常慢 private Context mContext; private final String[] web; private final int[] Imageid; public CustomGrid(Context c, String[] web, int[] Imageid) { mContext = c; this.Imageid = Im
private Context mContext;
private final String[] web;
private final int[] Imageid;
public CustomGrid(Context c, String[] web, int[] Imageid) {
mContext = c;
this.Imageid = Imageid;
this.web = web;
}
class MyViewHolder {
ImageView imageView;
TextView textView;
MyViewHolder(View v) {
imageView = (ImageView) v.findViewById(R.id.grid_image);
textView = (TextView) v.findViewById(R.id.grid_text);
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View grid = convertView;
MyViewHolder viewHolder;
if (grid == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
grid = inflater.inflate(R.layout.grid_single, null);
viewHolder = new MyViewHolder(grid);
grid.setTag(viewHolder);
} else {
grid = convertView;
viewHolder= (MyViewHolder) grid.getTag();
}
viewHolder.textView.setText(web[position]);
viewHolder.imageView.setImageResource(Imageid[position]);
return grid;
}
我认为你的代码应该可以正常工作。唯一可能的原因是加载的图像太大,内存无法同时加载所有图像 你可能想试试小一点的。或者可以考虑使用图像加载,因为它根据IVIEVIEW的大小调整图像大小。