Android ViewPager 引导页的一种效果

来源:互联网 发布:js确认对话框 确认执行 编辑:程序博客网 时间:2024/05/18 11:09

效果图:


主要代码:

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;@Overrideprotected 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 stubreturn new OnPageChangeListener() {@Overridepublic void onPageSelected(int position) {// TODO Auto-generated method stubImageView 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;}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub}@Overridepublic 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);}}}


0 1
原创粉丝点击