一个简单实用的滑动页动画,开始之前我们先认识一个空间,ViewPager,他是google SDk中自带的一个类,可以用来实现屏幕之间的切换。
先上代码,一看就明了!!
GlideActivity.ava
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
public class GlideActivity extends Activity{
/**
* 定义全局变量ViewPager
*/
private ViewPager mViewPager;
/**
* 底部圆点
*/
private ImageView pager1,pager2,pager3,pager4,pager5;
private int currIndex = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.whatsnew);
/**
* 实例化ViewPager
*/
mViewPager = (ViewPager) findViewById(R.id.whatsnew);
/**
* 设置滑动页变化的接口
*/
mViewPager.setOnPageChangeListener(new MyPager());
pager1 = (ImageView) findViewById(R.id.pager1);
pager2 = (ImageView) findViewById(R.id.pager2);
pager3 = (ImageView) findViewById(R.id.pager3);
pager4 = (ImageView) findViewById(R.id.pager4);
pager5 = (ImageView) findViewById(R.id.pager5);
LayoutInflater lif = LayoutInflater.from(this);
View view1 = lif.inflate(R.layout.start_one, null);
View view2 = lif.inflate(R.layout.start_tow, null);
View view3 = lif.inflate(R.layout.start_three, null);
View view4 = lif.inflate(R.layout.start_four, null);
View view5 = lif.inflate(R.layout.start_five, null);
/**
* 每个页面的view数据
*/
final ArrayList<View> array = new ArrayList<View>();
array.add(view1);
array.add(view2);
array.add(view3);
array.add(view4);
array.add(view5);
/**
* 填充ViewPager的数据适配器
*/
PagerAdapter mPagerAdapter = new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return array.size();
}
@Override
public void destroyItem(View container, int position, Object object) {
((ViewPager)container).removeView(array.get(position));
}
@Override
public Object instantiateItem(View container, int position) {
((ViewPager)container).addView(array.get(position));
return array.get(position);
}
};
mViewPager.setAdapter(mPagerAdapter);
}
public class MyPager implements OnPageChangeListener{
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
switch (arg0) {
case 0:
pager1.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
pager2.setImageDrawable(getResources().getDrawable(R.drawable.page));
break;
case 1:
pager2.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
pager1.setImageDrawable(getResources().getDrawable(R.drawable.page));
pager3.setImageDrawable(getResources().getDrawable(R.drawable.page));
break;
case 2:
pager3.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
pager2.setImageDrawable(getResources().getDrawable(R.drawable.page));
pager4.setImageDrawable(getResources().getDrawable(R.drawable.page));
break;
case 3:
pager4.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
pager3.setImageDrawable(getResources().getDrawable(R.drawable.page));
pager5.setImageDrawable(getResources().getDrawable(R.drawable.page));
break;
case 4:
pager5.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
pager4.setImageDrawable(getResources().getDrawable(R.drawable.page));
break;
}
currIndex = arg0;
}
}
public void startbutton(View v) {
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
this.finish();
}
}
XML布局文件
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/whatsnew"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >
<android.support.v4.view.PagerTitleStrip
android:id="@+id/support_pagerTitleStrip"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="bottom"
android:background="#0000" />
</android.support.v4.view.ViewPager>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginBottom="30dp"
android:gravity="center_horizontal" >
<ImageView
android:id="@+id/pager1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="matrix"
android:src="@drawable/page_now" />
<ImageView
android:id="@+id/pager2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:scaleType="matrix"
android:src="@drawable/page" />
<ImageView
android:id="@+id/pager3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:scaleType="matrix"
android:src="@drawable/page" />
<ImageView
android:id="@+id/pager4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:scaleType="matrix"
android:src="@drawable/page" />
<ImageView
android:id="@+id/pager5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:scaleType="matrix"
android:src="@drawable/page" />
</LinearLayout>
</LinearLayout>
</FrameLayout>
每一个滑动的图片,都是一个XML布局文件,总共是5个布局文件,我发一个就行了,很简单,就是设置一个背景就可以了。
pager.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/start_a">
</LinearLayout>
总结:我看过其他的应用,滑动页有点偷懒,把下面的圆点直接做到图片上,直接滑动就可以了,哪种方法很简单,依然使用ViewPager空间就可以,用直接添加到数组里就可以了,我就不在这里写了,大家自己研究下就行!!