您的位置:首页 > 移动开发 > Android开发

Android ViewPager 引导页的一种效果

2015-06-15 15:32 417 查看
效果图:



主要代码:

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.widget.LinearLayout;

public class MainActivity extends Activity {

private ViewPagerAdapter adapter;
private ViewPager viewpager;
private LinearLayout layout;

private int LastPageIndex=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewpager=(ViewPager)findViewById(R.id.main_viewpager);
layout=(LinearLayout)findViewById(R.id.layout_index);
adapter=new ViewPagerAdapter(getAdapterViews(new int[]{R.drawable.one,R.drawable.two,R.drawable.three,R.drawable.four,R.drawable.five}));
viewpager.setAdapter(adapter);
viewpager.setOnPageChangeListener(getPageChangerListener());
setLayoutIndexViews(5);
}

private OnPageChangeListener getPageChangerListener() {
// TODO Auto-generated method stub
return new OnPageChangeListener() {

@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub

ImageView mImageView1=(ImageView)layout.getChildAt(position);
mImageView1.setImageResource(R.drawable.index_check);
ImageView mImageView2=(ImageView)layout.getChildAt(LastPageIndex);
mImageView2.setImageResource(R.drawable.index_nor);
if(LastPageIndex>position){
View view=layout.getChildAt(position);
View view2=layout.getChildAt(LastPageIndex);
RotateAnimation mRotateAnimation2=new RotateAnimation(0.0f, 180.0f,view2.getWidth()/2,view2.getHeight()/2);
RotateAnimation mRotateAnimation=new RotateAnimation(360.0f, 180.0f,view.getWidth()/2,view.getHeight()/2);
mRotateAnimation.setDuration(500);
mRotateAnimation2.setDuration(500);
view2.setAnimation(mRotateAnimation);
view.startAnimation(mRotateAnimation);
view2.startAnimation(mRotateAnimation);
}else if(LastPageIndex<position){
View view=layout.getChildAt(position);
View view2=layout.getChildAt(LastPageIndex);
RotateAnimation mRotateAnimation2=new RotateAnimation(360.0f, 180.0f,view2.getWidth()/2,view2.getHeight()/2);
RotateAnimation mRotateAnimation=new RotateAnimation(180.0f, 360.0f,view.getWidth()/2,view.getHeight()/2);
mRotateAnimation.setDuration(500);
mRotateAnimation2.setDuration(500);
view2.setAnimation(mRotateAnimation);
view.startAnimation(mRotateAnimation);
view2.startAnimation(mRotateAnimation);
}

LastPageIndex=position;
}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub

}

@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub

}
};
}

private ArrayList<View> getAdapterViews(int ...params){
ArrayList<View> list=new ArrayList<View>();
LayoutParams mLayoutParams=new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
for (int i = 0; i < params.length; i++) {
ImageView mImageView=new ImageView(this);
mImageView.setLayoutParams(mLayoutParams);
mImageView.setScaleType(ScaleType.FIT_XY);
mImageView.setBackgroundResource(params[i]);
list.add(mImageView);
}
return list;
}

private void setLayoutIndexViews(int size){
for (int i = 0; i < size; i++) {
ImageView mImageView=new ImageView(this);
LayoutParams mLayoutParams=new LayoutParams(45,45);
mImageView.setPadding(5, 5, 5, 5);
mImageView.setLayoutParams(mLayoutParams);
if(i!=0){
mImageView.setImageResource(R.drawable.index_nor);
}else{
mImageView.setImageResource(R.drawable.index_check);
}
layout.addView(mImageView);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: