一、ViewPager
ViewPager是Screen Slides的一种解决方案,引用android官方:
Screen slides are transitions between one entire screen to another and are common with UIs like setup wizards or slideshows.
ViewPagers can animate screen slides automatically.
类继承关系:
API中的解释:
Layout manager that allows the user to flip left and right through pages of data. You supply an implementation of a PagerAdapter to generate the pages that the view shows.
ViewPage就是个布局管理器,所管理的页面允许用户左右滑动来显示,开发者通过实现适配器(PagerAdapter)来生成这些视图页面,可以实现多页面的切换效果。
二、实现效果
三、实现方式
1、布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<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>
2、java代码
import android.app.Activity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.ImageView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends Activity {
private ViewPager viewPager;
private int[] imgIds=new int[]{R.drawable.guide_image1,R.drawable.guide_image2,R.drawable.guide_image3};
private List<ImageView> imgList=new ArrayList<ImageView>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//去标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
viewPager=(ViewPager)findViewById(R.id.id_viewPager);
//添加切换动画效果
viewPager.setPageTransformer(true,new DepthPageTransformer());
viewPager.setAdapter(new PagerAdapter() {
//必须实现
@Override
public int getCount() {
return imgIds.length;
}
//必须实现
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView=new ImageView(MainActivity.this);
imageView.setImageResource(imgIds[position]);
//为了不让变形
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
container.addView(imageView);
imgList.add(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(imgList.get(position));
}
});
}
}
参考视频:https://www.imooc.com/learn/226