http://developer.android.com/reference/android/support/v4/view/ViewPager.html ViewPager的官方的文档地址。
利用ViewPager,可以做导航页,菜单页等,它就像ListView一样,需要去配置适配器。
完成ViewPager,需要四步骤去实现。
1、定义xml中的ViewPager控件.
2、定义PagerAdapter
3、定义Fragment
4、ViewPager设置Adapter
第一步、定义xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<android.support.v4.view.ViewPager
android:id="@+id/extViewPager"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
/>
</RelativeLayout>
第二步、定义PagerAdapter
//定义PagerAdapter
private class GuidePagerAdapter extends FragmentPagerAdapter {
private GuidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
//得到Fragment的实例
return GuideFragment.getInstance(guideImageUrl[i]); //To change body of implemented methods use File | Settings | File Templates.
}
@Override
public int getCount() {
return guideImageUrl.length; //To change body of implemented methods use File | Settings | File Templates.
}
}
第三步、定义Fragment
//定义Fragment
public static class GuideFragment extends Fragment{
public String uri;
public static GuideFragment getInstance(String uri){
GuideFragment guideFragment = new GuideFragment();
Bundle bundle = new Bundle();
bundle.putString("uri", uri);
guideFragment.setArguments(bundle);
return guideFragment;
}
//获得图片uri的路径
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //To change body of overridden methods use File | Settings | File Templates.
Bundle bundle = getArguments();
if(bundle != null){
uri = bundle.getString("uri");
}
}
//建立View
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragement_guide_page,null);
ImageView imageView = (ImageView)rootView.findViewById(R.id.iv_guide_pic);
Log.i("SplashGuidPager", "guide/"+uri);
imageView.setImageBitmap(getBitMap("guide/"+uri));
return rootView;
}
//定义的方法,用来获得BitMap
public Bitmap getBitMap(String uri){
try {
return BitmapFactory.decodeStream(getResources().getAssets().open(uri));
} catch (IOException e){
e.printStackTrace();
}
return null;
}
}
第四步、设置ViewpagerAdapter
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //To change body of overridden methods use File | Settings | File Templates.
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.splash);
initGuidPager();
}
public void initGuidPager(){
//获得XML的文件中的viewPager
viewPager = (ViewPager)findViewById(R.id.extViewPager);
//获得assert中的图片文件
AssetManager assetManager = getResources().getAssets() ;
try {
//得到guide文件夹中的图片的文件名
guideImageUrl = assetManager.list("guide");
} catch (IOException exception){
exception.printStackTrace();
}
//设置adapter
viewPager.setAdapter(new GuidePagerAdapter(getSupportFragmentManager()));
}