关于界面随着手指滑动的实现

来源:互联网 发布:阿里云虚拟机上传 编辑:程序博客网 时间:2024/04/29 04:43

介绍一个很简单就能实现该功能的方法:
使用android-support-v4这个第三方包,它已经实现了该功能,下面介绍如何使用它:
1、在布局文件中加入如下代码:

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/myMesPager" android:layout_width="fill_parent"android:layout_height="fill_parent" android:layout_margin="0.0dip"android:layout_gravity="center" android:persistentDrawingCache="animation"android:flipInterval="30" />

2、实现PageAdapter
public class MyPagerAdapter extends PagerAdapter {private static final String TAG = "PicViewActivity";    public  List<View> mListViews;    public MyPagerAdapter(List<View> mListViews) {        this.mListViews = mListViews;    }    @Override    public void destroyItem(View arg0, int arg1, Object arg2) {        Log.d(TAG, "destroyItem");        ((ViewPager) arg0).removeView(mListViews.get(arg1));    }    @Override    public void finishUpdate(View arg0) {        Log.d(TAG, "finishUpdate");    }    @Override    public int getCount() {        Log.d(TAG, "getCount");        return mListViews.size();    }    @Override    public Object instantiateItem(View arg0, int arg1) {        Log.d(TAG, "instantiateItem");        ((ViewPager) arg0).addView(mListViews.get(arg1), 0);        return mListViews.get(arg1);    }    @Override    public boolean isViewFromObject(View arg0, Object arg1) {        Log.d(TAG, "isViewFromObject");        return arg0 == (arg1);    }    @Override    public void restoreState(Parcelable arg0, ClassLoader arg1) {        Log.d(TAG, "restoreState");    }    @Override    public Parcelable saveState() {        Log.d(TAG, "saveState");        return null;    }    @Override    public void startUpdate(View arg0) {        Log.d(TAG, "startUpdate");    }}
3、实现页面功能
ArrayList<View> listViews = new ArrayList<View>();for(int i=0;i<max;i++){//在List中加入您需要显示的View,每个View就是一个界面//listViews.add(new View());}MyPageAdapter myAdapter = new MyPagerAdapter(listViews);ViewPage myViewPager = (ViewPager) findViewById(R.id.myMesPager);myViewPager.setAdapter(myAdapter);myViewPager.setCurrentItem(0);
界面滑动时的相关方法
myViewPager.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) {//从1到2滑动,2被加载后调用}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// 从1到2滑动,在1滑动前调用}@Overridepublic void onPageScrollStateChanged(int arg0) {// 状态有三个0空闲,1是正在滑行中,2目标加载完毕}});

效果如下

android-support-v4.jar的下载地址:http://download.csdn.net/detail/applezp/4081166

	
				
		
原创粉丝点击