(来自慕课网鸿洋大神的讲课内容)
这里只说明ViewPager3.0以上版本的官方方法
首先编写布局,很简单:
<?xml version="1.0" encoding="utf-8"?>
<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:background="#d7ccd6">
<android.support.v4.view.ViewPager
android:id="@+id/id_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
</RelativeLayout>
然后随便往mipmap放几张大一点的图片,
public class MainActivity extends AppCompatActivity {
private ViewPager mViewPager;
private int[] mImgIds = new int[]{
R.mipmap.guide_image1,R.mipmap.guide_image2,R.mipmap.guide_image3};
private List<ImageView> mList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 不要加这句,全屏要在AndroidManifest.xml文件中修改
// requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
mViewPager = (ViewPager) findViewById(R.id.id_viewpager);
// 为Viewpager添加切换动画
// mViewPager.setPageTransformer(true, new DepthPageTransformer());
mViewPager.setPageTransformer(true, new ZoomOutPageTransformer());
mViewPager.setAdapter(new PagerAdapter() {
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(MainActivity.this);
imageView.setImageResource(mImgIds[position]);
// 防止变形
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
container.addView(imageView);
mList.add(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mList.get(position));
}
@Override
public int getCount() {
return mImgIds.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
});
}
}
代码也不难,这也是最基本的实现代码,唯一需要注意的是为Viewpager添加切换动画,在官网给了几个例子,可以直接拷贝过来,当然也可以定制自己的动画:
官网Demo地址(需翻墙):http://developer.android.com/training/animation/screen-slide.html
对着这张图找:
拷贝过来后,会出错,需要导包,导包有一个小技巧,在Activity里随便敲一个ViewPager,然后就可以按提示Alt+Enter导包了,然后再删除刚写的ViewPager就可以了。
至于去掉标题栏设置全屏,参考我的另一篇博客:
http://blog.csdn.net/wangwei129549/article/details/50646735