1

我显示滚动视图中的属性列表有nxn矩阵视图。这有加载问题(内存不足,需要更多时间加载)要解决此问题,我尝试了一些解决方案,但无法达到100%请帮助。Android:显示具有多个列和行的图像(nxn)。有内存问题

  1. 我将列滚动视图更改为列表视图和尝试,但结果显示在所有listview的最后列值。我知道问题是适配器datasetchange会影响所有视图如何克服这个问题?
  2. 而最有价值的解决方案是在滚动视图中加载图像,这些图像在屏幕中可见,并且可见(可滚动)的变化可以加载图像。如何实现这一目标?

对此的帮助,因为它已经消耗了更多的时间。我试图与后台进程(doinbackground图像负载以及

+0

查看GridView:http://developer.android.com/reference/android/widget/GridView.html。它在需要时加载图像。 – andy256

+0

我想使用gridview,但问题是我想滚动每一列而不是整个视图。 –

回答

0

试试这个代码:

public class CustomBaseAdapter extends BaseAdapter { 
    Context context; 
    List<RowItem> rowItems; 

public CustomBaseAdapter(Context context, List<RowItem> items) { 
    this.context = context; 
    this.rowItems = items; 
} 

/*private view holder class*/ 
private class ViewHolder { 
    ImageView imageView; 
    TextView txtTitle; 
    TextView txtDesc; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder = null; 

    LayoutInflater mInflater = (LayoutInflater) 
     context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
    if (convertView == null) { 
     convertView = mInflater.inflate(R.layout.list_item, null); 
     holder = new ViewHolder(); 
     holder.txtDesc = (TextView) convertView.findViewById(R.id.desc); 
     holder.txtTitle = (TextView) convertView.findViewById(R.id.title); 
     holder.imageView = (ImageView) convertView.findViewById(R.id.icon); 
     convertView.setTag(holder); 
    } 
    else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    RowItem rowItem = (RowItem) getItem(position); 

    holder.txtDesc.setText(rowItem.getDesc()); 
    holder.txtTitle.setText(rowItem.getTitle()); 
    holder.imageView.setImageResource(rowItem.getImageId()); 

    return convertView; 
} 

@Override 
public int getCount() { 
    return rowItems.size(); 
} 

@Override 
public Object getItem(int position) { 
    return rowItems.get(position); 
} 

@Override 
public long getItemId(int position) { 
    return rowItems.indexOf(getItem(position)); 
} 

}

排项目类别:

public class RowItem { 
    private int imageId; 
    private String title; 
    private String desc; 


public RowItem(int imageId, String title, String desc) { 
    this.imageId = imageId; 
    this.title = title; 
    this.desc = desc; 
} 
public int getImageId() { 
    return imageId; 
} 
public void setImageId(int imageId) { 
    this.imageId = imageId; 
} 
public String getDesc() { 
    return desc; 
} 
public void setDesc(String desc) { 
    this.desc = desc; 
} 
public String getTitle() { 
    return title; 
} 
public void setTitle(String title) { 
    this.title = title; 
} 
@Override 
public String toString() { 
    return title + "\n" + desc; 
} 

}