利用ViewPager实现左右滑屏
2015-09-18 20:19
211 查看
一、在drawable-hdpi文件夹中定义的XML文件,将两个图片锁定到一起,一张设置state_enabled=”true”另一张设置state_enabled=”false”
二、设置布局,布局由ViewPager和ImageView组成
三、 1、将需要进行切换的图片的id放在一个数组中,方便后面的进行调用图片
2、创建内部类继承PagerAdapter并重写除必须重写的方法之外的instantiateItem,destroyItem这两个方法
<selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_enabled="true" android:drawable="@drawable/icon02"/> <item android:state_enabled="false" android:drawable="@drawable/icon01"/> </selector>
二、设置布局,布局由ViewPager和ImageView组成
<android.support.v4.view.ViewPager android:id="@+id/viewpagers" android:layout_height="wrap_content" android:layout_width="wrap_content"/> <LinearLayout android:id="@+id/dot_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" android:layout_alignParentBottom="true" android:layout_marginBottom="30dp" > <ImageView android:id="@+id/image1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/dot"/> <ImageView android:id="@+id/image2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/dot"/> <ImageView android:id="@+id/image3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/dot"/> <ImageView android:id="@+id/image4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/dot"/> </LinearLayout>
三、 1、将需要进行切换的图片的id放在一个数组中,方便后面的进行调用图片
2、创建内部类继承PagerAdapter并重写除必须重写的方法之外的instantiateItem,destroyItem这两个方法
class ViewAdapter extends PagerAdapter{ List<ImageView>list ; public ViewAdapter(List<ImageView> list) { super(); this.list = list; } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public boolean isViewFromObject(View view, Object object) { // TODO Auto-generated method stub return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(list.get(position)); return list.get(position); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(list.get(position)); } }
3、写一个方法对两个图片按钮进行初始化
public void intiDot(){ dot = new ImageView[imageView.length]; LinearLayout layout = (LinearLayout) findViewById(R.id.dot_layout); for(int i = 0 ; i < layout.getChildCount() ; i++){ ImageView imageView_dot = (ImageView) layout.getChildAt(i); imageView_dot.setEnabled(true); dot[i] = imageView_dot; imageView_dot.setTag(i); imageView_dot.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { viewPager.setCurrentItem((Integer) v.getTag()); } }); } dot[0].setEnabled(false); }
4、实现setOnPageChangeListener接口对页面的切换进行监听
viewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { //图片滑动,要把按钮对应的前一个图片的按钮的状态初始化 for(int i = 0 ; i < imageView.length ; i++){ dot[i].setEnabled(true); } dot[position].setEnabled(false);//将该位子的按钮设置为不可用 } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { // TODO Auto-generated method stub } @Override public void onPageScrollStateChanged(int state) { // TODO Auto-generated method stub } });
相关文章推荐
- 标题hehehe
- Jump Game II
- 长春网络赛 1108
- CentOS7安装phpMyAdmin
- 长春网络赛 1102
- 前端性能优化(十七)
- ios-新浪微博开发-15(新特性3)
- hdu3555(数位dp)
- Android——Hander和AsyncTask的使用
- QT调用VC dll方法
- Regional Changchun Online--Travel(Kruskal && 并查集)
- 杭电acm--2043
- 长春网络赛 1101
- HDU5432-Pyramid Split
- BaseMode 数据的封装成对象
- CUnit使用入门-精简的C语言单元测试工具
- 做事的真正态度
- iOS_词典阵列 按key分组和排序
- 动态访问某个方法
- java集合(-)