AdapterView是一项重要的组件,AdapterView本身是一个抽象基类,它派生的子类在用法上十分相似,只是显示界面有一定区别.
1)Adapter具有如下特征.
·AdapterView继承了ViewGroup,它的本质是容器
·AdapterView可以包括多个列表项,并将多个列表项以合适的形式显示出来
·AdapterView显示多个列表项由Adapter提供.
2)来看一下他们的继承关系
下面来说说BaseAdapter
BaseAdapter中的构造方法
3)示例
Gallery来显示一张图片
思路:
·界面布局
·添加适配器
·重写适配器
说明:点击下面画廊时,会在屏幕中显示图片
4)布局文件
MainActivity类
public class MainActivity extends AppCompatActivity {
Gallery gallery;
ImageView ig;
Button btn_gallery,btn_gird;
private int []image = new int[]{
R.drawable.ow_head1,
R.drawable.ow_head2,
R.drawable.ow_head3,
R.drawable.ow_head4,
R.drawable.ow_head5,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gallery = (Gallery)findViewById(R.id.Gallery1);
ig = (ImageView)findViewById(R.id.imageView);
btn_gallery = (Button)findViewById(R.id.btn_gallery);
btn_gird = (Button)findViewById(R.id.btn_girdView);
//为画廊添加一个适配器
gallery.setAdapter(new ImageAdapter(this));
//画廊点击时的监听器
gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView
adapterView, View view, int i, long l) {
ig.setBackgroundResource(image[i]);
}
});
//设置初始图片
ig.setBackgroundResource(image[0]);
btn_gird.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,GirdViewActivity.class);
startActivity(intent);
}
});
}
/*
* Function : ImageAdapter类,继承自BaseAdapter
* */
public class ImageAdapter extends BaseAdapter{
Context mcontext;//上下文对象
//构造方法
public ImageAdapter(Context context){
this.mcontext=context;
}
//获取图片个数
public int getCount(){
return image.length;
}
//获取图片在库中的位置
public Object getItem(int position){
return image[position];
}
//获取图片编号
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent){
ImageView imageView = new ImageView(mcontext);
imageView.setImageResource(image[position]);//填充图片ID
imageView.setLayoutParams(new Gallery.LayoutParams(200, 300));//设置画廊图片的宽和高
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);//设置图片显示方式,FILL_CENTER表示 把图片按比例扩大/缩小到View的宽度,居中显示
return imageView;
}
}
}