Android中ViewPager和PagerAdapter的简单使用
16lz
2021-01-25
需求
使用ViewPager和PagerAdapter简单的做一个当前界面横向滑动可以切换图片的功能。
布局
activity.xml布局文件只要加入ViewPager和TextView控件即可
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/operation_viewpager" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/image_index_of_total" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:padding="20dp" android:text="0/0" android:textColor="@color/white" android:textSize="24sp" />RelativeLayout>
代码
代码的一些初始化
private ViewPager viewPager; private PagerAdapter pagerAdapter; private int[] resArray; private TextView indexOfTotalTV;private void initDatas() { resArray = new int[]{R.drawable.e1, R.drawable.e2, R.drawable.e3, R.drawable.e4, R.drawable.e5, R.drawable.e6, R.drawable.e7, R.drawable.e8, R.drawable.e9, R.drawable.e10, R.drawable.e11, R.drawable.e12, R.drawable.e13, R.drawable.e14, R.drawable.e15}; total = resArray.length; }private void initView() { indexOfTotalTV = (TextView) findViewById(R.id.image_index_of_total); viewPager = (ViewPager) findViewById(R.id.operation_viewpager); initPageAdapter(); }
PagerAdapter的初始化
private void initPageAdapter() { pagerAdapter = new PagerAdapter() { //获取当前界面个数 @Override public int getCount() { return resArray.length; } //判断是否由对象生成页面 @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } //返回一个对象 @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView = new ImageView(OperationActivity.this); imageView.setImageResource(resArray[position]); container.addView(imageView); return imageView; } }; viewPager.setAdapter(pagerAdapter); viewPager.setOnPageChangeListener(new GuidePageChangeListener()); // 默认 viewPager.setCurrentItem(0); indexOfTotalTV.setText(1 + "/" + total); }
监听page变化,显示index
public class GuidePageChangeListener implements ViewPager.OnPageChangeListener { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } //页面滑动完成后执行 @Override public void onPageSelected(int position) { indexOfTotalTV.setText(position + 1 + "/" + total); } //监听页面的状态,0--静止 1--滑动 2--滑动完成 @Override public void onPageScrollStateChanged(int state) { } }
更多相关文章
- 安全新手入坑——HTML标签
- Nginx系列教程(四)| 一文带你读懂Nginx的动静分离
- [置顶] Cocos2d-x使用过程中遇到的错误(VS下开发,移植到Android发
- Android(安卓)Studio——ListView的高级使用
- android 微博开发问题
- Kotlin学习路(五):变量延迟初始化
- Android(安卓)输入法框弹出 背景上移或压缩问题
- Android(安卓)File.listFiles()返回null问题
- ViewPager和ViewFlipperV冲突