界面的滑动切换

    随着移动设备的增加,android手机端的切换动画要求也在逐步改变,以前我开发android APP时,界面的切换不是通过按钮就是通过tabhost进行切换,现在进行版本升级,要求通过手的滑动来切换界面。
   主要通过ViewPager来实现。
代码如下:
    package com.example.demo_vep;

import java.util.ArrayList;

import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;

public class MYViewPagerAdapter extends PagerAdapter {

private ArrayList<View> views;

public void setViews(ArrayList<View> views) {
this.views = views;
}

@Override
public int getCount() {
return views.size();
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}

@Override
public void destroyItem(View container, int position, Object object) {

((ViewPager)container).removeView(views.get(position));
}

@Override
public Object instantiateItem(View container, int position) {
((ViewPager)container).addView(views.get(position));
return views.get(position);
}
}
//------------------------------------------//
package com.example.demo_vep;

import java.util.ArrayList;

import android.os.Bundle;
import android.app.Activity;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViewPager();
}
private void initViewPager()
{
     ViewPager viewPager = (ViewPager)findViewById(R.id.viewPager);
    
     View view1 = LayoutInflater.from(this).inflate(R.layout.layout1, null);
     View view2 = LayoutInflater.from(this).inflate(R.layout.layout2, null);
     View view3 = LayoutInflater.from(this).inflate(R.layout.layout3, null);
    
     ArrayList<View> views = new ArrayList<View>();
     views.add(view1);
     views.add(view2);
     views.add(view3);
    
     MYViewPagerAdapter adapter = new MYViewPagerAdapter();
     adapter.setViews(views);
     viewPager.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}
//------------四个布局文件---------------------------//
/--------------main_activity.xml---------------/
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
<android.support.v4.view.ViewPager
     android:id="@+id/viewPager"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">
     <requestFocus />
</android.support.v4.view.ViewPager>
</RelativeLayout>
/----------layout1,layout2,layout3-----------------/
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#ff0000ff"
    android:gravity="center">
  
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第一页"
        android:textColor="#ffffffff"
        android:textSize="30sp"/>
</LinearLayout>
----------layout1,layout2,layout3布局文件一样------------------

猜你喜欢

转载自dzy-123.iteye.com/blog/1837264