您的位置:首页 > 其它

Gallery之BaseAdapter

2017-03-22 16:15 169 查看
AdapterView是一项重要的组件,AdapterView本身是一个抽象基类,它派生的子类在用法上十分相似,只是显示界面有一定区别.

1)Adapter具有如下特征.

·AdapterView继承了ViewGroup,它的本质是容器

·AdapterView可以包括多个列表项,并将多个列表项以合适的形式显示出来

·AdapterView显示多个列表项由Adapter提供.

2)来看一下他们的继承关系



下面来说说BaseAdapter

BaseAdapter中的构造方法



3)示例

Gallery来显示一张图片

思路:

·界面布局

·添加适配器

·重写适配器



说明:点击下面画廊时,会在屏幕中显示图片

4)布局文件



<?xml version="1.0" encoding="utf-8"?>


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

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  布局