用了 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);
}
}