ViewPager与PagerAdapter实现图片左右滑动效果

本文详细介绍了ViewPager组件及其适配器PagerAdapter的使用方法。通过实例展示了如何实现图片轮播功能,包括初始化ViewPager、设置图片资源及PagerAdapter的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PagerAdapter主要是viewpager的适配器,该适配器能填充页面内容到ViewPager中。它也是android.support.v4包中的类,

PagerAdapter需要重写四个方法

public int getCount() {
		return this.views.size();
	}
	/**初始化position界面*/
	@Override
	public Object instantiateItem(ViewGroup container, int position) {
		((ViewPager)container).addView(views.get(position));
		return views.get(position);
	}
	/**判断是否由对象生成界面*/
	@Override
	public boolean isViewFromObject(View arg0, Object arg1) {
		return arg0==arg1;
	}
	/**当切换的图片多于三张时会调用,用来销毁以前图片*/
	@Override
	public void destroyItem(ViewGroup container, int position, Object object) {
		((ViewPager)container).removeView(views.get(position));
	}

主Activity代码

public class MainActivity extends Activity 
{
	private ViewPager viewpager;
	private List<View> views;
	private int[] guideImgaes={R.drawable.banner1,R.drawable.banner2,R.drawable.banner3,R.drawable.banner4,};
	private ViewPagerAdapter adapter;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);	
		setContentView(R.layout.activity_main);
		initView();
		initData();
	}
	/**初始化View*/
	private void initView(){
		viewpager=(ViewPager) findViewById(R.id.viewpager);
		views= new ArrayList<View>(); 
		adapter=new ViewPagerAdapter(views);	//给adapter一个列表容器,用来存储数据 
	}
	/**初始化数据*/
	private void initData(){
		//将图片填充整个窗体


		for(int i:guideImgaes){//i是存储的四张图片的ID
			ImageView imageView= new ImageView(this);
			imageView.setImageResource(i);//将id给参数imageView,setImageResource是将图片根据分辨率适配
			views.add(imageView) ;//将图片添加进List数组
		}
		viewpager.setAdapter(adapter);
	}
}

for用于将照片的id存入数组容器中

再将这个数据传给适配器,再用setAdapter调用回来



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值