需求

使用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)        {        }    }

更多相关文章

  1. 安全新手入坑——HTML标签
  2. Nginx系列教程(四)| 一文带你读懂Nginx的动静分离
  3. [置顶] Cocos2d-x使用过程中遇到的错误(VS下开发,移植到Android发
  4. Android(安卓)Studio——ListView的高级使用
  5. android 微博开发问题
  6. Kotlin学习路(五):变量延迟初始化
  7. Android(安卓)输入法框弹出 背景上移或压缩问题
  8. Android(安卓)File.listFiles()返回null问题
  9. ViewPager和ViewFlipperV冲突

随机推荐

  1. Android中引入开源库(Eclipse与Android(安
  2. Android修行之路——Android程序设计基础
  3. 【漫漫安卓路之承】android tips
  4. Android开发小记之一
  5. android(EditText)属性详解
  6. android shape总结 和控制的风格定制
  7. Android设备硬件序列号(SN、串号)分析
  8. Android(安卓)NDK开发:SeetaFace2实现人脸
  9. Android(安卓)Service :利用Binder实现通
  10. Android(安卓)NDK开发之旅35--FFmpeg+Aud