Android之Gallery的使用

来源:互联网 发布:sql查重复记录 编辑:程序博客网 时间:2024/05/29 05:54

Android的Gallery是一个类似于相册列表的控件,这里说明简单的实现,主要在于BaseAdapter实现类和持有者的结合使用。
1.主布局文件声明Gallery控件,

    <Gallery        android:id="@+id/myGallery"        android:layout_width="wrap_content"        android:layout_height="wrap_content">    </Gallery>

2.定义每一个项的布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"        android:orientation="vertical"        android:layout_width="match_parent"        android:layout_height="match_parent">    <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/imageView" /></LinearLayout>

3.定义适配器和持有者:

  class MyAdapter extends BaseAdapter{        @Override        public int getCount() {            return resIds.length;        }        @Override        public Object getItem(int i) {            return i;        }        @Override        public long getItemId(int i) {            return i;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            View row=view;            Wrapper wrapper=null;            if(row==null){                row= LayoutInflater.from(MainActivity.this).inflate(R.layout.gallery_item,viewGroup,false);                wrapper=new Wrapper(row);                row.setTag(wrapper);            //将持有者对象保存下来            }else{                //如果项已经存在了                wrapper= (Wrapper) row.getTag();            }            ImageView image=wrapper.getImage();            image.setImageResource(resIds[i]);            return row;        }    }    //结合BaseAdapter使用的是持有者    class Wrapper{        ImageView image;        View row;        public Wrapper(View row){            this.row=row;        }        //得到ImageViewd的对象        public ImageView getImage(){            //如果不存在就从控件中找            if(image==null){               image= (ImageView) row.findViewById(R.id.imageView);            }            //如果已经存在那么返回            return image;        }    }
0 0