android学习之ViewPager 初步使用

----------------ViewPager的功能就是可以使视图滑动

大概步骤 1所需要的对象 List<View> 用于装载ImageView 对象   根据图片数量把 图片依次添加设置到ImageView中 然后将ImageView 添加到List<View>中

2.设置ViewPager的apapter重写PagerAdapter方法  

3.设置adapter

注意 需要导包:

android.support.v4

效果图

 

直接上代码:

public class MainActivity extends Activity {
private List<View> views;
private ViewPager viewpager;
private ViewPageAdapter adapter;
private Integer images[]={
        R.drawable.a,
        R.drawable.b,
        R.drawable.c,
        R.drawable.d,
        R.drawable.e,
        R.drawable.f,
        R.drawable.g
};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LayoutInflater inflater=getLayoutInflater();
        views=new ArrayList<View>();
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.FILL_PARENT,
                LinearLayout.LayoutParams.FILL_PARENT);
        for(int i=0;i<images.length;i++){
            ImageView iv=new ImageView(this);
            iv.setLayoutParams(params);   //设置布局大小和LinearLayout一样
            iv.setScaleType(ScaleType.FIT_XY);
            iv.setImageResource(images[i]);
            views.add(iv);
        }
        viewpager=(ViewPager) findViewById(R.id.viewpager);
        adapter=new ViewPageAdapter(views);
        viewpager.setAdapter(adapter);
        //绑定回调函数
        viewpager.setOnPageChangeListener(new OnPageChangeListener() {
            @Override
            public void onPageSelected(int arg0) {
            }
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }
            @Override
            public void onPageScrollStateChanged(int arg0) {
                
            }
        });
    }



}

adapter:

package com.example.test_viewpager;

import java.util.List;

import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;

public class ViewPageAdapter extends PagerAdapter {
private List<View> views;

public ViewPageAdapter(List<View> views) {
    this.views=views;
}
    @Override
    public void destroyItem(View view, int arg1, Object arg2) {
        // TODO Auto-generated method stub
        ((ViewPager)view).removeView(views.get(arg1));  //移除
    }
//完成更新
    @Override
    public void finishUpdate(View view) {
    }
//获得总数
    @Override
    public int getCount() {
        if(views!=null){
            return views.size();
        }
        return 0;
    }
//实例化Item
    @Override
    public Object instantiateItem(View view, int arg1) {
        ((ViewPager)view).addView(views.get(arg1),0);
        return views.get(arg1);
    }

    @Override
    public boolean isViewFromObject(View view, Object arg1) {
        // TODO Auto-generated method stub
        return view==arg1;
    }
//恢复状态
    @Override
    public void restoreState(Parcelable arg0, ClassLoader arg1) {
        // TODO Auto-generated method stub
        
    }
//保存状态
    @Override
    public Parcelable saveState() {
        // TODO Auto-generated method stub
        return null;
    }
//启动更新
    @Override
    public void startUpdate(View arg0) {
        // TODO Auto-generated method stub
        
    }

}

xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
 >
    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />

</LinearLayout>

 

posted @ 2013-12-04 16:53  小小小小小小菜鸟  阅读(441)  评论(0编辑  收藏  举报