package com.yztc_viewpager;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
/**
* ViewPager基本用法
*/
public class MainActivity extends Activity {
private ViewPager mVp;
private List<ImageView> mList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mVp = (ViewPager) findViewById(R.id.vp);
// 获取要展示图片的数量
getImageRes();
getTitles();
// 数据源
int[] imageRes = getImageRes();
mList = new ArrayList<ImageView>();
for (int i = 0; i < imageRes.length; i++) {
ImageView iv = new ImageView(this);
// 关联一个图片资源
iv.setBackgroundResource(imageRes[i]);
mList.add(iv);
}
mVp.setAdapter(new MyAdapetr());
}
private void getTitles() {
// TODO Auto-generated method stub
}
private int[] getImageRes() {
return new int[] { R.drawable.tu1, R.drawable.tu2, R.drawable.tu3,
R.drawable.tu4 };
}
// 适配器
class MyAdapetr extends PagerAdapter {
// 用来决定ViewPager中到底可以显示多少个子视图
@Override
public int getCount() {
return mList != null ? mList.size() : 0;// 三元运算符
}
// 判断是否需要重新生成新的子视图
@Override
public boolean isViewFromObject(View view, Object obj) {
return view == obj;
}
// 产生一个新的视图
// 这两个方法是手敲的,选带ViewGroup参数的方法
@Override
public Object instantiateItem(ViewGroup container, int position) {
// 展示哪个条目
container.addView(mList.get(position));
return mList.get(position);// 返回对应的图片
}
// 从ViewPager中移除某个条目
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// 从指定位置移除
container.removeView(mList.get(position));
}
}
}
布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="200dp" />
</RelativeLayout>