您的位置:首页 > 其它

利用ViewPager实现左右滑屏

2015-09-18 20:19 211 查看
一、在drawable-hdpi文件夹中定义的XML文件,将两个图片锁定到一起,一张设置state_enabled=”true”另一张设置state_enabled=”false”

<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

}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息