首页 > 代码库 > Android ViewPager 动画效果

Android ViewPager 动画效果

  1. package com.example.jaazy;  
  2.   
  3. import java.util.ArrayList;  
  4.   
  5. import android.support.v4.view.PagerAdapter;  
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8. import android.view.ViewGroup;  
  9. /** 
  10.  * Create by LanYan on 2014.04.24 
  11.  * This is a adapter 
  12.  */  
  13. public class ViewPagerAdapterOnClick extends PagerAdapter {  
  14.     private ArrayList<View> views;  
  15.     private ViewPageOnClick callback;  
  16.     private JazzyViewPager pager;  
  17.   
  18.     public ViewPagerAdapterOnClick(JazzyViewPager pager,ArrayList<View> views,ViewPageOnClick callback) {  
  19.         this.setViews(views);  
  20.         this.callback=callback;  
  21.         this.pager=pager;  
  22.     }  
  23.   
  24.     public void setViews(ArrayList<View> views) {  
  25.         if (views != null)  
  26.             this.views = views;  
  27.         else  
  28.             this.views = new ArrayList<View>();  
  29.     }  
  30.   
  31.     public void changeItem(ArrayList<View> views) {  
  32.         this.setViews(views);  
  33.         notifyDataSetChanged();  
  34.     }  
  35.   
  36.   
  37.     @Override  
  38.     public int getItemPosition(Object object) {  
  39.         // TODO Auto-generated method stub  
  40.         return POSITION_NONE;  
  41.     }  
  42.   
  43.     @Override  
  44.     public int getCount() {  
  45.         // TODO Auto-generated method stub  
  46.         return views.size();  
  47.     }  
  48.   
  49.     @Override  
  50.     public boolean isViewFromObject(View arg0, Object arg1) {  
  51.         // TODO Auto-generated method stub  
  52.         return arg0 == arg1;  
  53.     }  
  54.   
  55.     @Override  
  56.     public void destroyItem(ViewGroup container, int position, Object object) {  
  57.         View v = views.get(position);  
  58.         container.removeView(v);  
  59.     }  
  60.     public void removeUpdate(ViewGroup container){  
  61.         container.removeAllViews();  
  62.     }  
  63.     @Override  
  64.     public Object instantiateItem(ViewGroup container, final int position) {  
  65.         View v = views.get(position);  
  66.         v.setOnClickListener(new OnClickListener() {  
  67.   
  68.             public void onClick(View v) {  
  69.                 // TODO Auto-generated method stub  
  70.                 callback.callbackOnClickItem(position);  
  71.             }  
  72.         });  
  73.         container.addView(v);  
  74.         pager.setObjectForPosition(v, position);  
  75.         return v;  
  76.     }  
  77.     public interface ViewPageOnClick{  
  78.         void callbackOnClickItem(int position);  
  79.     }  
  80. }  

activity:

[java] view plaincopy
  1. import java.util.ArrayList;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.View;  
  6. import android.view.ViewGroup.LayoutParams;  
  7. import android.widget.ImageView;  
  8. import android.widget.Toast;  
  9.   
  10. import com.example.jaazy.JazzyViewPager.TransitionEffect;  
  11. import com.example.jaazy.ViewPagerAdapterOnClick.ViewPageOnClick;  
  12.   
  13. public class MainActivity extends Activity implements ViewPageOnClick{  
  14.   
  15.     private JazzyViewPager pager;  
  16.     private ViewPagerAdapterOnClick adapter;  
  17.   
  18.     @Override  
  19.     protected void onCreate(Bundle savedInstanceState) {  
  20.         super.onCreate(savedInstanceState);  
  21.         setContentView(R.layout.activity_main);  
  22.         setupJazziness(TransitionEffect.Stack);  
  23.   
  24.     }  
  25.   
  26.     private void setupJazziness(TransitionEffect stack) {  
  27.         // TODO Auto-generated method stub  
  28.         pager=(JazzyViewPager)findViewById(R.id.jazzy_pager);  
  29.         adapter=new ViewPagerAdapterOnClick(pager, getViews(),this);  
  30.         pager.setAdapter(adapter);  
  31.           
  32.         pager.setPageMargin(5);  
  33.         //压栈方式  
  34.         pager.setTransitionEffect(TransitionEffect.Stack);  
  35.         //立体内部进出  
  36.         //pager.setTransitionEffect(TransitionEffect.CubeIn);  
  37.         //立体凸出  
  38.         //pager.setTransitionEffect(TransitionEffect.CubeOut);  
  39.         //左右挤压  
  40.         //pager.setTransitionEffect(TransitionEffect.Accordion);  
  41.         //水平翻页  
  42.         //pager.setTransitionEffect(TransitionEffect.FlipHorizontal);  
  43.         //垂直翻页  
  44.         //pager.setTransitionEffect(TransitionEffect.FlipVertical);  
  45.         //上扇形摆入  
  46.         //pager.setTransitionEffect(TransitionEffect.RotateDown);  
  47.         //下扇形摆入  
  48.         //pager.setTransitionEffect(TransitionEffect.RotateUp);  
  49.         //标准  
  50.         //pager.setTransitionEffect(TransitionEffect.Standard);  
  51.         //选项卡(卡片形式)  
  52.         ///pager.setTransitionEffect(TransitionEffect.Tablet);  
  53.           
  54.         //zoom in  
  55.         //pager.setTransitionEffect(TransitionEffect.ZoomIn);  
  56.           
  57.         //zoom out  
  58.         //pager.setTransitionEffect(TransitionEffect.ZoomOut);  
  59.           
  60.           
  61.     }  
  62.   
  63.     private ArrayList<View> getViews() {  
  64.         // TODO Auto-generated method stub  
  65.         ArrayList<View> list=new ArrayList<View>();  
  66.   
  67.         ImageView i=new ImageView(this);  
  68.         LayoutParams params=new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);  
  69.         i.setLayoutParams(params);  
  70.         i.setBackgroundResource(R.drawable.a);  
  71.   
  72.   
  73.         ImageView i2=new ImageView(this);  
  74.         i2.setLayoutParams(params);  
  75.         i2.setBackgroundResource(R.drawable.b);  
  76.   
  77.         ImageView i3=new ImageView(this);  
  78.         i3.setLayoutParams(params);  
  79.         i3.setBackgroundResource(R.drawable.c);  
  80.   
  81.         ImageView i4=new ImageView(this);  
  82.         i4.setLayoutParams(params);  
  83.         i4.setBackgroundResource(R.drawable.e);  
  84.   
  85.         list.add(i);  
  86.         list.add(i2);  
  87.         list.add(i3);  
  88.         list.add(i4);  
  89.         return list;  
  90.     }  
  91.   
  92.     @Override  
  93.     public void callbackOnClickItem(int position) {  
  94.         // TODO Auto-generated method stub  
  95.         Toast.makeText(this, "position:"+position, 1000).show();  
  96.     }  
  97.   
  98.   
  99. }  

JazzyViewPager自带动画枚举11中,如需其他动画,自己添加即可

Android ViewPager 动画效果