首页 > 代码库 > Android:自定义适配器

Android:自定义适配器

无论是ArrayAdapter还是SimpleAdapter都继承了BaseAdapter,自定义适配器同样继承BaseAdapter

实例:Gallery实现图片浏览器

<?xml version="1.0" encoding="utf-8"?> <Gallery  xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/gallery"    android:layout_width="match_parent"    android:layout_height="wrap_content" >    </Gallery>

 

public class MainActivity extends Activity {private Gallery gallery;private int[] res={R.drawable.ic_launcher,R.drawable.ic_launcher};private ImageAdapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.demo);        gallery = (Gallery) findViewById(R.id.gallery);               adapter = new ImageAdapter(res, this);        gallery.setAdapter(adapter);                            }}

自定义的适配器

public class ImageAdapter  extends BaseAdapter{    public int res[];    private Context context;    public ImageAdapter(int res[],Context context){        this.res=res;        this.context=context;    }        @Override    //返回已定义数据源总数量    public int getCount() {        // TODO Auto-generated method stub        return res.length;    }    @Override    //告诉适配器取得目前容器中的数据对象    public Object getItem(int position) {        // TODO Auto-generated method stub        return position;    }    @Override    //告诉适配器取得目前容器中的数据ID    public long getItemId(int position) {        // TODO Auto-generated method stub        return position;    }    @Override    //取得当前欲显示的图像View    public View getView(int position, View convertView, ViewGroup parent) {        // TODO Auto-generated method stub        ImageView image=new ImageView(context);        image.setBackgroundResource(res[position]);        image.setLayoutParams(new Gallery.LayoutParams(400,300));        image.setScaleType(ScaleType.FIT_XY);        return image;    }}