通过自定义适配器动态添加ListView的ImageView中的图像

时间:2014-08-24 02:54:25

标签: android android-listview android-imageview android-arrayadapter

我有一个listview,它有一个imageview。我想在listview中显示图像(大约600)。为此我想制作这样一个列表视图,它只加载一些图像(大约10-15),当我到达listview的底部时,它会加载10-15个图像。我使用过Custom ArrayAdapter。

class MyAdapter extends ArrayAdapter<String>{

    Bitmap[] bmp = null;
    Context context;
    Uri[] URIs;
    LayoutInflater layout;


    public MyAdapter(Context context, int resource, Uri[] URIs,
            List<String> objects, Bitmap[] bmp) {
        super(context, resource, objects);
        // TODO Auto-generated constructor stub
        this.bmp = bmp;
        this.context = context;
        this.URIs = URIs;
    }

    class MyViewHolder {
        ImageView imageView;

        public MyViewHolder(View v) { // TODO Auto-generated constructor
            // stub
            imageView = (ImageView) v.findViewById(R.id.imageView_row);
        }
    }

    @Override
    public int getCount() { // TODO Auto-generated method stub
        return URIs.length;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;
        MyViewHolder holder = null;
        if (row == null) {
            layout = (LayoutInflater) context
                    .getSystemService(getActivity().LAYOUT_INFLATER_SERVICE);
            row = layout.inflate(R.layout.row_hometab_pic, parent, false);
            holder = new MyViewHolder(row);
            row.setTag(holder);
        } else {
            holder = (MyViewHolder) row.getTag();
        }
        Picasso.with(getActivity()).load(URIs[position]).resize(300, 300)
                .centerInside().into(holder.imageView);
        return row;
    }
}

请帮忙......

1 个答案:

答案 0 :(得分:0)

好的,这是你可以做到的:

  1. 通过扩展BaseAdapter创建一个类。
  2. 在适配器中,保留一个名为itemsToDisplay的变量。
  3. getCount()中返回此变量。
  4. getView()中返回自定义视图。
  5. 无论您在何处显示列表,都可以在底部添加一个按钮:Load More Images或其他。
  6. 单击该按钮会使itemsToDisplay增加一些值。
  7. 调用适配器上的notifyDataSetChanged,以便在itemsToDisplay更改后显示更多图片。