无论是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; } }