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;
    }

}
原文地址:https://www.cnblogs.com/tinyphp/p/3919800.html