Android ViewPager 动画效果
- package com.example.jaazy;
- import java.util.ArrayList;
- import android.support.v4.view.PagerAdapter;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.ViewGroup;
- /**
- * Create by LanYan on 2014.04.24
- * This is a adapter
- */
- public class ViewPagerAdapterOnClick extends PagerAdapter {
- private ArrayList<View> views;
- private ViewPageOnClick callback;
- private JazzyViewPager pager;
- public ViewPagerAdapterOnClick(JazzyViewPager pager,ArrayList<View> views,ViewPageOnClick callback) {
- this.setViews(views);
- this.callback=callback;
- this.pager=pager;
- }
- public void setViews(ArrayList<View> views) {
- if (views != null)
- this.views = views;
- else
- this.views = new ArrayList<View>();
- }
- public void changeItem(ArrayList<View> views) {
- this.setViews(views);
- notifyDataSetChanged();
- }
- @Override
- public int getItemPosition(Object object) {
- // TODO Auto-generated method stub
- return POSITION_NONE;
- }
- @Override
- public int getCount() {
- // TODO Auto-generated method stub
- return views.size();
- }
- @Override
- public boolean isViewFromObject(View arg0, Object arg1) {
- // TODO Auto-generated method stub
- return arg0 == arg1;
- }
- @Override
- public void destroyItem(ViewGroup container, int position, Object object) {
- View v = views.get(position);
- container.removeView(v);
- }
- public void removeUpdate(ViewGroup container){
- container.removeAllViews();
- }
- @Override
- public Object instantiateItem(ViewGroup container, final int position) {
- View v = views.get(position);
- v.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- // TODO Auto-generated method stub
- callback.callbackOnClickItem(position);
- }
- });
- container.addView(v);
- pager.setObjectForPosition(v, position);
- return v;
- }
- public interface ViewPageOnClick{
- void callbackOnClickItem(int position);
- }
- }
activity:
- import java.util.ArrayList;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.ViewGroup.LayoutParams;
- import android.widget.ImageView;
- import android.widget.Toast;
- import com.example.jaazy.JazzyViewPager.TransitionEffect;
- import com.example.jaazy.ViewPagerAdapterOnClick.ViewPageOnClick;
- public class MainActivity extends Activity implements ViewPageOnClick{
- private JazzyViewPager pager;
- private ViewPagerAdapterOnClick adapter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- setupJazziness(TransitionEffect.Stack);
- }
- private void setupJazziness(TransitionEffect stack) {
- // TODO Auto-generated method stub
- pager=(JazzyViewPager)findViewById(R.id.jazzy_pager);
- adapter=new ViewPagerAdapterOnClick(pager, getViews(),this);
- pager.setAdapter(adapter);
- pager.setPageMargin(5);
- //压栈方式
- pager.setTransitionEffect(TransitionEffect.Stack);
- //立体内部进出
- //pager.setTransitionEffect(TransitionEffect.CubeIn);
- //立体凸出
- //pager.setTransitionEffect(TransitionEffect.CubeOut);
- //左右挤压
- //pager.setTransitionEffect(TransitionEffect.Accordion);
- //水平翻页
- //pager.setTransitionEffect(TransitionEffect.FlipHorizontal);
- //垂直翻页
- //pager.setTransitionEffect(TransitionEffect.FlipVertical);
- //上扇形摆入
- //pager.setTransitionEffect(TransitionEffect.RotateDown);
- //下扇形摆入
- //pager.setTransitionEffect(TransitionEffect.RotateUp);
- //标准
- //pager.setTransitionEffect(TransitionEffect.Standard);
- //选项卡(卡片形式)
- ///pager.setTransitionEffect(TransitionEffect.Tablet);
- //zoom in
- //pager.setTransitionEffect(TransitionEffect.ZoomIn);
- //zoom out
- //pager.setTransitionEffect(TransitionEffect.ZoomOut);
- }
- private ArrayList<View> getViews() {
- // TODO Auto-generated method stub
- ArrayList<View> list=new ArrayList<View>();
- ImageView i=new ImageView(this);
- LayoutParams params=new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
- i.setLayoutParams(params);
- i.setBackgroundResource(R.drawable.a);
- ImageView i2=new ImageView(this);
- i2.setLayoutParams(params);
- i2.setBackgroundResource(R.drawable.b);
- ImageView i3=new ImageView(this);
- i3.setLayoutParams(params);
- i3.setBackgroundResource(R.drawable.c);
- ImageView i4=new ImageView(this);
- i4.setLayoutParams(params);
- i4.setBackgroundResource(R.drawable.e);
- list.add(i);
- list.add(i2);
- list.add(i3);
- list.add(i4);
- return list;
- }
- @Override
- public void callbackOnClickItem(int position) {
- // TODO Auto-generated method stub
- Toast.makeText(this, "position:"+position, 1000).show();
- }
- }
JazzyViewPager自带动画枚举11中,如需其他动画,自己添加即可
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。