Android 页面手势滑动

用了 android-support-v4 架包 里面功能很强大,还没怎么仔细研究,如有所需去研究官方文档吧,下面上截图



xml中使用架包里的ViewPager组件

<android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />

绑定ViewPater之前需要一个List用来存放多个页面的View

Activity中对ViewPater进行适配器绑定

PagerAdapter apdter = new PagerAdapter() {

			@Override
			public boolean isViewFromObject(View arg0, Object arg1) {
				return arg0 == arg1;
			}

			@Override
			public int getCount() {
				return mViewArr.size();
			}

			@Override
			public void destroyItem(ViewGroup container, int position,
					Object object) {
				((ViewPager) container).removeView(mViewArr.get(position));
			}

			@Override
			public Object instantiateItem(ViewGroup container, int position) {
				((ViewPager) container).addView(mViewArr.get(position));
				return mViewArr.get(position);
			}

		};
		viewPager.setAdapter(apdter);

然后就大功告成了

如需捕获页面滑动事件对ViewPater设置setOnPageChangeListener事件在onPageSelected方法中调用即可

viewPager.setOnPageChangeListener(new OnPageChangeListener() {
			
			@Override
			public void onPageSelected(int arg0) {
				
			}

下面放源码供参考

package com.icss.viewpagerdemos;

import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class ViewPagerDemosActivity extends Activity {
	/** Called when the activity is first created. */
	private ViewPager viewPager;
	private List<View> mViewList = new ArrayList<View>();
	private List<CoursePojo> mCourList = new ArrayList<CoursePojo>();

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.course_main);
		viewPager = (ViewPager) this.findViewById(R.id.viewPager);
		initData();
		for (int i = 0; i < mCourList.size(); i++) {
			initView(i);
		}
		
		PagerAdapter apdter = new PagerAdapter() {

			@Override
			public boolean isViewFromObject(View arg0, Object arg1) {
				return arg0 == arg1;
			}

			@Override
			public int getCount() {
				return mViewList.size();
			}

			@Override
			public void destroyItem(ViewGroup container, int position,
					Object object) {
				((ViewPager) container).removeView(mViewList.get(position));
			}

			@Override
			public Object instantiateItem(ViewGroup container, int position) {
				((ViewPager) container).addView(mViewList.get(position));
				return mViewList.get(position);
			}

		};
		viewPager.setAdapter(apdter);
	}

	private void initData() {
		mCourList.add(new CoursePojo(1, "数学", "清华大学出版社", "高等数学...", "数学", 30,
				"/sdcard/qxg/1/1.jpg"));
		mCourList.add(new CoursePojo(2, "语文", "北京大学出版社", "大学语文", "语文", 50,
				"/sdcard/qxg/2/2.jpg"));
	}

	public void initView(final int index) {
		LayoutInflater li = LayoutInflater.from(this);
		RelativeLayout rl = (RelativeLayout) li.inflate(R.layout.course_item,
				null);

		ImageView img = (ImageView) rl.findViewById(R.id.course_img);
		TextView name = (TextView) rl.findViewById(R.id.course_name);
		TextView press = (TextView) rl.findViewById(R.id.course_press);
		TextView desc = (TextView) rl.findViewById(R.id.course_description);
		TextView type = (TextView) rl.findViewById(R.id.course_type);
		TextView hour = (TextView) rl.findViewById(R.id.course_hour);
		TextView page = (TextView) rl.findViewById(R.id.course_page);
		Button del = (Button) rl.findViewById(R.id.course_del);
		Button study = (Button) rl.findViewById(R.id.course_study);

		CoursePojo cp = mCourList.get(index);
		name.setText("课程名称 : "+cp.getCourseName());
		press.setText("出版社 : "+cp.getCoursePress());
		desc.setText("课程介绍 : "+cp.getCourseDesc());
		type.setText("类别 : "+cp.getCourseType());
		hour.setText("课时 : "+cp.getCourseHour()+"");
		page.setText((index + 1) + "/" + mCourList.size());
		img.setImageBitmap(BitmapFactory.decodeFile(cp.getCourseImg()));

		del.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				
			}
		});
		study.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				
			}
		});

		mViewList.add(rl);
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值