Gallery之BaseAdapter

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

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值