public class MainActivity extends AppCompatActivity { private ViewPager mVp; private List<ImageView> mlist; private TextView tvTitle; private LinearLayout llPoints; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mVp = (ViewPager) findViewById(R.id.vp); tvTitle = (TextView) findViewById(R.id.tv_title); llPoints = (LinearLayout) findViewById(R.id.ll_points); //方法:得到res子目录drawable中的图片 int[] image = getImage(); final String[] tvTitles = getTitles(); tvTitle.setText(tvTitles[0]); mlist = new ArrayList<>(); for(int i=0;i<image.length;i++){ ImageView iv=new ImageView(this); iv.setBackgroundResource(image[i]); mlist.add(iv); //添加小圆点 View points=new View(this); points.setBackgroundResource(R.drawable.dot_normal); LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(45,45); points.setLayoutParams(params); params.leftMargin=5; llPoints.addView(points); } //设置适配器 mVp.setAdapter(new Myadapter()); //页面切换的监听方法 // mVp.setOnPageChangeListener(); mVp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { //当页面滚动的时候的调用 //position:位置 //positionOffset:页面滚动的百分比 //positionOffsetPixels:页面滚动过的真实的像素距离. @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } //当某个页面被选中的时候调用 @Override public void onPageSelected(int position) { tvTitle.setText(tvTitles[position]); } //当某个页面滚动状态发生改变的时候调用. @Override public void onPageScrollStateChanged(int state) { } }); } //得到图片中的的文字的方法 private String[] getTitles() { return getResources().getStringArray(R.array.tv_title); } //得到图片的具体方法 private int[] getImage() { return new int[]{R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e}; } //自定义适配器 class Myadapter extends PagerAdapter{ //决定viewpager中内部视图的个数 @Override public int getCount() { return mlist.size(); } //生产viewpager中的子视图 @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)); } //判断当前视图是否为新视图 @Override public boolean isViewFromObject(View view, Object object) { return view==object; } } }
<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" tools:context="com.bfw.administrator.viewpager.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="200dp"> </android.support.v4.view.ViewPager> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_alignBottom="@+id/vp" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:gravity="center_horizontal"> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ldsfjal" android:textSize="20sp" android:layout_alignBottom="@+id/vp" android:layout_centerHorizontal="true" android:layout_marginBottom="15dp"/> <LinearLayout android:id="@+id/ll_points" android:orientation="horizontal" android:layout_width="match_parent" android:gravity="center" android:layout_height="wrap_content"> </LinearLayout> </LinearLayout> </RelativeLayout>